Skip to content

Commit

Permalink
feat(composer): update convert to attached scene component and load d…
Browse files Browse the repository at this point in the history
…ata from it
  • Loading branch information
sheilaXu authored and haweston committed Apr 24, 2024
1 parent 1e506ec commit 86c92ce
Show file tree
Hide file tree
Showing 20 changed files with 1,460 additions and 134 deletions.
2 changes: 0 additions & 2 deletions packages/scene-composer/src/common/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,7 @@ export const FONT_AWESOME_PREFIX = 'fas';
/******************************************************************************
* Matterport Constants
******************************************************************************/
export const SCENE_CAPABILITY_MATTERPORT = 'MATTERPORT';
export const SECRET_MANAGER_MATTERPORT_TAG = 'AWSIoTTwinMaker_Matterport';
export const MATTERPORT_SECRET_ARN = 'MATTERPORT_SECRET_ARN';
export const MATTERPORT_ACCESS_TOKEN = 'MATTERPORT_ACCESS_TOKEN';
export const MATTERPORT_APPLICATION_KEY = 'MATTERPORT_APPLICATION_KEY';
export const MATTERPORT_ERROR = 'MATTERPORT_ERROR';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { cleanup, renderHook } from '@testing-library/react-hooks';
import str2ab from 'string-to-arraybuffer';
import flushPromises from 'flush-promises';
import { Object3D, Event, Mesh, MeshBasicMaterial, Color } from 'three';
import { TwinMakerSceneMetadataModule } from '@iot-app-kit/source-iottwinmaker';

import { useSceneComposerApi, SceneComposerApi } from '..';
import { testScenes } from '../../tests/testData';
Expand Down Expand Up @@ -44,8 +45,17 @@ function createSceneLoaderMock(sceneContent: string) {
}

describe('SceneComposerInternal', () => {
const getSceneInfo = jest.fn();
const mockSceneMetadataModule = {
getSceneInfo,
} as unknown as TwinMakerSceneMetadataModule;

beforeEach(() => {
jest.clearAllMocks();
getSceneInfo.mockResolvedValue({
capabilities: [],
sceneMetadata: {},
});
});

describe('useSceneComposerApi', () => {
Expand All @@ -62,6 +72,7 @@ describe('SceneComposerInternal', () => {
sceneComposerId={sceneComposerId}
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(testScenes.scene1)}
sceneMetadataModule={mockSceneMetadataModule}
/>
);
};
Expand All @@ -81,6 +92,7 @@ describe('SceneComposerInternal', () => {
sceneComposerId={sceneComposerId}
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(testScenes.waterTank)}
sceneMetadataModule={mockSceneMetadataModule}
/>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import * as React from 'react';
import { create, act } from 'react-test-renderer';
import str2ab from 'string-to-arraybuffer';
import flushPromises from 'flush-promises';
import { TwinMakerSceneMetadataModule } from '@iot-app-kit/source-iottwinmaker';

import * as SceneLayoutComponents from '../layouts/SceneLayout';
import { invalidTestScenes, testScenes } from '../../tests/testData';
Expand Down Expand Up @@ -33,15 +34,28 @@ function createSceneLoaderMock(sceneContent: string) {
}

describe('SceneComposerInternal', () => {
const getSceneInfo = jest.fn();
const mockSceneMetadataModule = {
getSceneInfo,
} as unknown as TwinMakerSceneMetadataModule;

beforeEach(() => {
jest.clearAllMocks();
getSceneInfo.mockResolvedValue({
capabilities: [],
sceneMetadata: {},
});
});

it('should render correctly with an empty scene in editing mode', async () => {
let container;
await act(async () => {
container = create(
<SceneComposerInternal config={{ mode: 'Editing' }} sceneLoader={createSceneLoaderMock('')} />,
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock('')}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

await flushPromises();
Expand All @@ -55,7 +69,11 @@ describe('SceneComposerInternal', () => {
let container;
await act(async () => {
container = create(
<SceneComposerInternal config={{ mode: 'Viewing' }} sceneLoader={createSceneLoaderMock('')} />,
<SceneComposerInternal
config={{ mode: 'Viewing' }}
sceneLoader={createSceneLoaderMock('')}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

await flushPromises();
Expand All @@ -69,7 +87,11 @@ describe('SceneComposerInternal', () => {
let container;
await act(async () => {
container = create(
<SceneComposerInternal config={{ mode: 'Editing' }} sceneLoader={createSceneLoaderMock(testScenes.scene1)} />,
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(testScenes.scene1)}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

await flushPromises();
Expand All @@ -86,6 +108,7 @@ describe('SceneComposerInternal', () => {
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(invalidTestScenes.unsupportedMinorVersionScene)}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

Expand All @@ -102,6 +125,7 @@ describe('SceneComposerInternal', () => {
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(invalidTestScenes.unsupportedMajorVersion)}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

Expand All @@ -118,6 +142,7 @@ describe('SceneComposerInternal', () => {
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(invalidTestScenes.invalidSpecVersionScene)}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

Expand All @@ -132,8 +157,16 @@ describe('SceneComposerInternal', () => {
await act(async () => {
container = create(
<div>
<SceneComposerInternal config={{ mode: 'Editing' }} sceneLoader={createSceneLoaderMock(testScenes.scene1)} />
<SceneComposerInternal config={{ mode: 'Editing' }} sceneLoader={createSceneLoaderMock(testScenes.scene2)} />
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(testScenes.scene1)}
sceneMetadataModule={mockSceneMetadataModule}
/>
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(testScenes.scene2)}
sceneMetadataModule={mockSceneMetadataModule}
/>
</div>,
);

Expand All @@ -152,8 +185,13 @@ describe('SceneComposerInternal', () => {
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(invalidTestScenes.invalidJson)}
sceneMetadataModule={mockSceneMetadataModule}
/>
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(testScenes.scene1)}
sceneMetadataModule={mockSceneMetadataModule}
/>
<SceneComposerInternal config={{ mode: 'Editing' }} sceneLoader={createSceneLoaderMock(testScenes.scene1)} />
</div>,
);

Expand All @@ -170,6 +208,7 @@ describe('SceneComposerInternal', () => {
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock(invalidTestScenes.invalidJson)}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

Expand All @@ -185,7 +224,11 @@ describe('SceneComposerInternal', () => {
});

const container = create(
<SceneComposerInternal config={{ mode: 'Editing' }} sceneLoader={createSceneLoaderMock('')} />,
<SceneComposerInternal
config={{ mode: 'Editing' }}
sceneLoader={createSceneLoaderMock('')}
sceneMetadataModule={mockSceneMetadataModule}
/>,
);

await flushPromises();
Expand Down

0 comments on commit 86c92ce

Please sign in to comment.