forked from opensearch-project/OpenSearch-Dashboards
-
Notifications
You must be signed in to change notification settings - Fork 0
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 (opensearch-projec…
…t#6105) * Import sample data to workspace Signed-off-by: Lin Wang <[email protected]> * Enable workspace ui plugin Signed-off-by: Lin Wang <[email protected]> * Add changelog for import sample data to current workspace Signed-off-by: Lin Wang <[email protected]> * feat: register sample data as standalone app (#8) * feat: register sample data as standalone app Signed-off-by: SuZhou-Joe <[email protected]> * feat: optimize code Signed-off-by: SuZhou-Joe <[email protected]> * feat: add comment Signed-off-by: SuZhou-Joe <[email protected]> * feat: use props to pass homeLink Signed-off-by: SuZhou-Joe <[email protected]> * feat: add unit test Signed-off-by: SuZhou-Joe <[email protected]> --------- Signed-off-by: SuZhou-Joe <[email protected]> * Retrieve workspace id from request Signed-off-by: Lin Wang <[email protected]> * Remove workspace id in query Signed-off-by: Lin Wang <[email protected]> * Move changelog to fragments Signed-off-by: Lin Wang <[email protected]> * Fix sample data list unit tests Signed-off-by: Lin Wang <[email protected]> * Remove no need workspaces deps Signed-off-by: Lin Wang <[email protected]> * Remove manual created changelogs Signed-off-by: Lin Wang <[email protected]> * Changeset file for PR opensearch-project#6105 created/updated * Enable sample data in workspace overview page (#9) * enable sample data in workspace overview page Signed-off-by: Hailong Cui <[email protected]> * add comments for empty id Signed-off-by: Hailong Cui <[email protected]> --------- Signed-off-by: Hailong Cui <[email protected]> * Add unit tests for getFinalSavedObjects in data sets util file Signed-off-by: Lin Wang <[email protected]> * Add unit tests for renderImportSampleDataApp destroy Signed-off-by: Lin Wang <[email protected]> * Address PR comments Signed-off-by: Lin Wang <[email protected]> * Remove history listen in renderImportSampleDataApp Signed-off-by: Lin Wang <[email protected]> * Remove Route for workspace import sample data entry point Signed-off-by: Lin Wang <[email protected]> --------- Signed-off-by: Lin Wang <[email protected]> Signed-off-by: SuZhou-Joe <[email protected]> Signed-off-by: Hailong Cui <[email protected]> Co-authored-by: SuZhou-Joe <[email protected]> Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com> Co-authored-by: Hailong Cui <[email protected]>
- Loading branch information
1 parent
54b5eb5
commit 3e9a159
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.