-
Notifications
You must be signed in to change notification settings - Fork 892
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Workspace]Import sample data to current workspace (#6105)
* Import sample data to workspace Signed-off-by: Lin Wang <wonglam@amazon.com> * Enable workspace ui plugin Signed-off-by: Lin Wang <wonglam@amazon.com> * Add changelog for import sample data to current workspace Signed-off-by: Lin Wang <wonglam@amazon.com> * feat: register sample data as standalone app (#8) * feat: register sample data as standalone app Signed-off-by: SuZhou-Joe <suzhou@amazon.com> * feat: optimize code Signed-off-by: SuZhou-Joe <suzhou@amazon.com> * feat: add comment Signed-off-by: SuZhou-Joe <suzhou@amazon.com> * feat: use props to pass homeLink Signed-off-by: SuZhou-Joe <suzhou@amazon.com> * feat: add unit test Signed-off-by: SuZhou-Joe <suzhou@amazon.com> --------- Signed-off-by: SuZhou-Joe <suzhou@amazon.com> * Retrieve workspace id from request Signed-off-by: Lin Wang <wonglam@amazon.com> * Remove workspace id in query Signed-off-by: Lin Wang <wonglam@amazon.com> * Move changelog to fragments Signed-off-by: Lin Wang <wonglam@amazon.com> * Fix sample data list unit tests Signed-off-by: Lin Wang <wonglam@amazon.com> * Remove no need workspaces deps Signed-off-by: Lin Wang <wonglam@amazon.com> * Remove manual created changelogs Signed-off-by: Lin Wang <wonglam@amazon.com> * Changeset file for PR #6105 created/updated * Enable sample data in workspace overview page (#9) * enable sample data in workspace overview page Signed-off-by: Hailong Cui <ihailong@amazon.com> * add comments for empty id Signed-off-by: Hailong Cui <ihailong@amazon.com> --------- Signed-off-by: Hailong Cui <ihailong@amazon.com> * Add unit tests for getFinalSavedObjects in data sets util file Signed-off-by: Lin Wang <wonglam@amazon.com> * Add unit tests for renderImportSampleDataApp destroy Signed-off-by: Lin Wang <wonglam@amazon.com> * Address PR comments Signed-off-by: Lin Wang <wonglam@amazon.com> * Remove history listen in renderImportSampleDataApp Signed-off-by: Lin Wang <wonglam@amazon.com> * Remove Route for workspace import sample data entry point Signed-off-by: Lin Wang <wonglam@amazon.com> --------- Signed-off-by: Lin Wang <wonglam@amazon.com> Signed-off-by: SuZhou-Joe <suzhou@amazon.com> Signed-off-by: Hailong Cui <ihailong@amazon.com> Co-authored-by: SuZhou-Joe <suzhou@amazon.com> Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com> Co-authored-by: Hailong Cui <ihailong@amazon.com> (cherry picked from commit 3e9a159) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
- Loading branch information
1 parent
ecfaed5
commit 2131598
Showing
26 changed files
with
849 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
feat: | ||
- [Workspace]Import sample data to current workspace ([#6105](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6105)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
import React, { useEffect, useRef } from 'react'; | ||
import { render } from '@testing-library/react'; | ||
import { coreMock } from '../../../../core/public/mocks'; | ||
import { renderImportSampleDataApp } from './application'; | ||
|
||
jest.mock('./components/home_app', () => ({ | ||
HomeApp: () => 'HomeApp', | ||
ImportSampleDataApp: () => 'ImportSampleDataApp', | ||
})); | ||
|
||
const coreStartMocks = coreMock.createStart(); | ||
|
||
const ComponentForRender = (props: { renderFn: typeof renderImportSampleDataApp }) => { | ||
const container = useRef<HTMLDivElement>(null); | ||
useEffect(() => { | ||
if (container.current) { | ||
const destroyFn = props.renderFn(container.current, coreStartMocks); | ||
return () => { | ||
destroyFn.then((res) => res()); | ||
}; | ||
} | ||
}, [props]); | ||
|
||
return <div ref={container} />; | ||
}; | ||
|
||
describe('renderImportSampleDataApp', () => { | ||
it('should render ImportSampleDataApp when calling renderImportSampleDataApp', async () => { | ||
const { container } = render(<ComponentForRender renderFn={renderImportSampleDataApp} />); | ||
expect(container).toMatchInlineSnapshot(` | ||
<div> | ||
<div> | ||
ImportSampleDataApp | ||
</div> | ||
</div> | ||
`); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 60 additions & 0 deletions
60
src/plugins/home/public/application/components/home_app.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
import React from 'react'; | ||
import { render } from '@testing-library/react'; | ||
import { setServices } from '../opensearch_dashboards_services'; | ||
import { getMockedServices } from '../opensearch_dashboards_services.mock'; | ||
import { ImportSampleDataApp, HomeApp } from './home_app'; | ||
|
||
jest.mock('./legacy/home', () => ({ | ||
Home: () => <div>Home</div>, | ||
})); | ||
|
||
jest.mock('../load_tutorials', () => ({ | ||
getTutorial: () => {}, | ||
})); | ||
|
||
jest.mock('./tutorial_directory', () => ({ | ||
TutorialDirectory: (props: { withoutHomeBreadCrumb?: boolean }) => ( | ||
<div | ||
data-test-subj="tutorial_directory" | ||
data-without-home-bread-crumb={!!props.withoutHomeBreadCrumb} | ||
/> | ||
), | ||
})); | ||
|
||
describe('<HomeApp />', () => { | ||
let currentService: ReturnType<typeof getMockedServices>; | ||
beforeEach(() => { | ||
currentService = getMockedServices(); | ||
setServices(currentService); | ||
}); | ||
|
||
it('should not pass withoutHomeBreadCrumb to TutorialDirectory component', async () => { | ||
const originalHash = window.location.hash; | ||
const { findByTestId } = render(<HomeApp />); | ||
window.location.hash = '/tutorial_directory'; | ||
const tutorialRenderResult = await findByTestId('tutorial_directory'); | ||
expect(tutorialRenderResult.dataset.withoutHomeBreadCrumb).toEqual('false'); | ||
|
||
// revert to original hash | ||
window.location.hash = originalHash; | ||
}); | ||
}); | ||
|
||
describe('<ImportSampleDataApp />', () => { | ||
let currentService: ReturnType<typeof getMockedServices>; | ||
beforeEach(() => { | ||
currentService = getMockedServices(); | ||
setServices(currentService); | ||
}); | ||
|
||
it('should pass withoutHomeBreadCrumb to TutorialDirectory component', async () => { | ||
const { findByTestId } = render(<ImportSampleDataApp />); | ||
const tutorialRenderResult = await findByTestId('tutorial_directory'); | ||
expect(tutorialRenderResult.dataset.withoutHomeBreadCrumb).toEqual('true'); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
65 changes: 65 additions & 0 deletions
65
src/plugins/home/public/application/components/tutorial_directory.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
import React from 'react'; | ||
import { render } from '@testing-library/react'; | ||
import { IntlProvider } from 'react-intl'; | ||
import { coreMock } from '../../../../../core/public/mocks'; | ||
import { setServices } from '../opensearch_dashboards_services'; | ||
import { getMockedServices } from '../opensearch_dashboards_services.mock'; | ||
|
||
const makeProps = () => { | ||
const coreMocks = coreMock.createStart(); | ||
return { | ||
addBasePath: coreMocks.http.basePath.prepend, | ||
openTab: 'foo', | ||
isCloudEnabled: false, | ||
}; | ||
}; | ||
|
||
describe('<TutorialDirectory />', () => { | ||
let currentService: ReturnType<typeof getMockedServices>; | ||
beforeEach(() => { | ||
currentService = getMockedServices(); | ||
setServices(currentService); | ||
}); | ||
it('should render home breadcrumbs when withoutHomeBreadCrumb is undefined', async () => { | ||
const finalProps = makeProps(); | ||
currentService.http.get.mockResolvedValueOnce([]); | ||
// @ts-ignore | ||
const { TutorialDirectory } = await import('./tutorial_directory'); | ||
render( | ||
<IntlProvider locale="en"> | ||
<TutorialDirectory {...finalProps} /> | ||
</IntlProvider> | ||
); | ||
expect(currentService.chrome.setBreadcrumbs).toBeCalledWith([ | ||
{ | ||
href: '#/', | ||
text: 'Home', | ||
}, | ||
{ | ||
text: 'Add data', | ||
}, | ||
]); | ||
}); | ||
|
||
it('should not render home breadcrumbs when withoutHomeBreadCrumb is true', async () => { | ||
const finalProps = makeProps(); | ||
currentService.http.get.mockResolvedValueOnce([]); | ||
// @ts-ignore | ||
const { TutorialDirectory } = await import('./tutorial_directory'); | ||
render( | ||
<IntlProvider locale="en"> | ||
<TutorialDirectory {...finalProps} withoutHomeBreadCrumb /> | ||
</IntlProvider> | ||
); | ||
expect(currentService.chrome.setBreadcrumbs).toBeCalledWith([ | ||
{ | ||
text: 'Add data', | ||
}, | ||
]); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
47 changes: 47 additions & 0 deletions
47
src/plugins/home/public/application/opensearch_dashboards_services.mock.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/* | ||
* Copyright OpenSearch Contributors | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
import { coreMock } from '../../../../core/public/mocks'; | ||
import { urlForwardingPluginMock } from '../../../url_forwarding/public/mocks'; | ||
import { homePluginMock } from '../mocks'; | ||
import { | ||
EnvironmentService, | ||
FeatureCatalogueRegistry, | ||
SectionTypeService, | ||
TutorialService, | ||
} from '../services'; | ||
import { telemetryPluginMock } from '../../../telemetry/public/mocks'; | ||
|
||
export const getMockedServices = () => { | ||
const coreMocks = coreMock.createStart(); | ||
const urlForwarding = urlForwardingPluginMock.createStartContract(); | ||
const homePlugin = homePluginMock.createSetupContract(); | ||
return { | ||
...coreMocks, | ||
...homePlugin, | ||
telemetry: telemetryPluginMock.createStartContract(), | ||
indexPatternService: jest.fn(), | ||
dataSource: { | ||
dataSourceEnabled: false, | ||
hideLocalCluster: false, | ||
noAuthenticationTypeEnabled: false, | ||
usernamePasswordAuthEnabled: false, | ||
awsSigV4AuthEnabled: false, | ||
}, | ||
opensearchDashboardsVersion: '', | ||
urlForwarding, | ||
savedObjectsClient: coreMocks.savedObjects.client, | ||
toastNotifications: coreMocks.notifications.toasts, | ||
banners: coreMocks.overlays.banners, | ||
trackUiMetric: jest.fn(), | ||
getBasePath: jest.fn(), | ||
addBasePath: jest.fn(), | ||
environmentService: new EnvironmentService(), | ||
tutorialService: new TutorialService(), | ||
homeConfig: homePlugin.config, | ||
featureCatalogue: new FeatureCatalogueRegistry(), | ||
sectionTypes: new SectionTypeService(), | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.