@itwin/reports-config-widget-react 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/.rush/temp/package-deps_rebuild.json +13 -13
  2. package/.rush/temp/shrinkwrap-deps.json +20 -18
  3. package/CHANGELOG.json +24 -0
  4. package/CHANGELOG.md +15 -1
  5. package/coverage/clover.xml +103 -102
  6. package/coverage/coverage-final.json +12 -12
  7. package/coverage/lcov-report/index.html +19 -19
  8. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +2 -2
  9. package/coverage/lcov-report/src/index.html +1 -1
  10. package/coverage/lcov-report/src/test/index.html +1 -1
  11. package/coverage/lcov-report/src/test/test-utils.tsx.html +2 -2
  12. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +1 -1
  13. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +1 -1
  14. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +9 -9
  15. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +4 -4
  16. package/coverage/lcov-report/src/widget/components/Extraction.tsx.html +13 -13
  17. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +2 -2
  18. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +1 -1
  19. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +5 -5
  20. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +35 -26
  21. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +34 -34
  22. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +1 -1
  23. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +4 -4
  24. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +1 -1
  25. package/coverage/lcov-report/src/widget/components/index.html +38 -38
  26. package/coverage/lcov-report/src/widget/components/utils.tsx.html +30 -30
  27. package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +4 -4
  28. package/coverage/lcov-report/src/widget/context/index.html +1 -1
  29. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  30. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +1 -1
  31. package/coverage/lcov-report/src/widget/index.html +1 -1
  32. package/coverage/lcov.info +238 -317
  33. package/lib/cjs/test/ReportMappings.test.js +42 -31
  34. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  35. package/lib/cjs/test/Reports.test.js +12 -7
  36. package/lib/cjs/test/Reports.test.js.map +1 -1
  37. package/lib/cjs/test/test-utils.js.map +1 -1
  38. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  39. package/lib/cjs/widget/components/AddMappingsModal.js +5 -6
  40. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  41. package/lib/cjs/widget/components/Extraction.js +9 -11
  42. package/lib/cjs/widget/components/Extraction.js.map +1 -1
  43. package/lib/cjs/widget/components/ReportAction.js +3 -3
  44. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  45. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  46. package/lib/cjs/widget/components/ReportMappings.js +23 -27
  47. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  48. package/lib/cjs/widget/components/Reports.js +6 -6
  49. package/lib/cjs/widget/components/Reports.js.map +1 -1
  50. package/lib/cjs/widget/components/ReportsContainer.scss +3 -0
  51. package/lib/esm/test/ReportMappings.test.js +42 -31
  52. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  53. package/lib/esm/test/Reports.test.js +12 -7
  54. package/lib/esm/test/Reports.test.js.map +1 -1
  55. package/lib/esm/test/test-utils.js.map +1 -1
  56. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  57. package/lib/esm/widget/components/AddMappingsModal.js +6 -7
  58. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  59. package/lib/esm/widget/components/Extraction.js +10 -12
  60. package/lib/esm/widget/components/Extraction.js.map +1 -1
  61. package/lib/esm/widget/components/ReportAction.js +4 -4
  62. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  63. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  64. package/lib/esm/widget/components/ReportMappings.js +24 -28
  65. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  66. package/lib/esm/widget/components/Reports.js +7 -7
  67. package/lib/esm/widget/components/Reports.js.map +1 -1
  68. package/lib/esm/widget/components/ReportsContainer.scss +3 -0
  69. package/package.json +2 -2
  70. package/reports-config-widget-react.build.error.log +4 -4
  71. package/reports-config-widget-react.build.log +12 -12
  72. package/src/test/ReportMappings.test.tsx +44 -24
  73. package/src/test/Reports.test.tsx +18 -13
  74. package/src/test/test-utils.tsx +1 -1
  75. package/src/widget/components/AddMappingsModal.tsx +6 -6
  76. package/src/widget/components/Extraction.tsx +10 -10
  77. package/src/widget/components/ReportAction.tsx +4 -4
  78. package/src/widget/components/ReportMappings.tsx +21 -18
  79. package/src/widget/components/Reports.tsx +6 -6
  80. package/src/widget/components/ReportsContainer.scss +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Reports.test.js","sourceRoot":"","sources":["../../../src/test/Reports.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport {\n render,\n screen,\n TestUtils,\n waitForElementToBeRemoved,\n within,\n} from \"../test/test-utils\";\nimport { Reports } from \"../widget/components/Reports\";\nimport type {\n IModelConnection,\n SelectionSet,\n SelectionSetEvent,\n} from \"@itwin/core-frontend\";\nimport { NoRenderApp } from \"@itwin/core-frontend\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport { rest } from \"msw\";\nimport { setupServer } from \"msw/node\";\nimport * as moq from \"typemoq\";\nimport type {\n SelectionManager,\n SelectionScopesManager,\n} from \"@itwin/presentation-frontend\";\nimport {\n Presentation,\n SelectionChangeEvent,\n} from \"@itwin/presentation-frontend\";\nimport faker from \"@faker-js/faker\";\nimport type { ReportCollection } from \"@itwin/insights-client\";\nimport userEvent from \"@testing-library/user-event\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../widget/ReportsConfigUiProvider\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\n\nconst mockITwinId = faker.datatype.uuid();\nconst mockIModelId = faker.datatype.uuid();\n\nconst reportsFactory = (): ReportCollection => ({\n reports: Array.from(\n { length: faker.datatype.number({ min: 3, max: 5 }) },\n (_, index) => ({\n id: `${faker.datatype.uuid()}`,\n displayName: `mOcKRePoRT${index}`,\n description: `mOcKRePoRTDeScRiPtIoN${index}`,\n })\n ),\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n});\n\nconst connectionMock = moq.Mock.ofType<IModelConnection>();\nconst selectionManagerMock = moq.Mock.ofType<SelectionManager>();\nconst selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();\n\njest.mock(\"@itwin/appui-react\", () => ({\n ...jest.requireActual(\"@itwin/appui-react\"),\n useActiveIModelConnection: () => connectionMock.object,\n}));\n\njest.mock(\"../widget/components/ReportMappings\", () => ({\n ReportMappings: () => \"MockReportMappings\",\n}));\n\nconst server = setupServer();\n\nbeforeAll(async () => {\n // This is required by the i18n module within iTwin.js\n (global as any).XMLHttpRequest = require(\"xmlhttprequest\").XMLHttpRequest; // eslint-disable-line @typescript-eslint/no-var-requires\n\n await NoRenderApp.startup();\n await Presentation.initialize();\n const selectionSet = moq.Mock.ofType<SelectionSet>();\n const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();\n selectionSet.setup((x) => x.elements).returns(() => new Set([]));\n selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);\n connectionMock\n .setup((x) => x.selectionSet)\n .returns(() => selectionSet.object);\n connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);\n connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);\n\n selectionManagerMock\n .setup((x) => x.selectionChange)\n .returns(() => new SelectionChangeEvent());\n\n selectionScopesManagerMock\n .setup(async (x) => x.getSelectionScopes(connectionMock.object))\n .returns(async () => []);\n selectionManagerMock\n .setup((x) => x.scopes)\n .returns(() => selectionScopesManagerMock.object);\n\n Presentation.setSelectionManager(selectionManagerMock.object);\n await TestUtils.initializeUiFramework(connectionMock.object);\n await ReportsConfigWidget.initialize();\n server.listen();\n});\n\nafterAll(() => {\n TestUtils.terminateUiFramework();\n server.close();\n});\n\nafterEach(() => server.resetHandlers());\n\ndescribe(\"Reports View\", () => {\n it(\"call to action button should be clickable with no reports\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const ctaButton = screen.getByRole(\"button\", {\n name: /createonereportcta/i,\n });\n await user.click(ctaButton);\n expect(screen.getByText(/addreport/i)).toBeInTheDocument();\n });\n\n it(\"be able to add new report\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const newButton = screen.getByRole(\"button\", {\n name: /new/i,\n });\n await user.click(newButton);\n expect(screen.getByText(/addreport/i)).toBeInTheDocument();\n });\n\n it(\"list all reports\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const horizontalTiles = screen.getAllByTestId(\"horizontal-tile\");\n // TODO check for all descriptions and names and imodels\n expect(horizontalTiles).toHaveLength(mockedReports?.reports!.length);\n\n for (const [index, horizontalTile] of horizontalTiles.entries()) {\n const reportMappingTile = within(horizontalTile);\n expect(\n reportMappingTile.getByText(\n mockedReports?.reports![index].displayName ?? \"\"\n )\n ).toBeInTheDocument();\n expect(\n reportMappingTile.getByTitle(\n mockedReports?.reports![index].description ?? \"\"\n )\n ).toBeInTheDocument();\n }\n });\n\n it(\"able to modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n\n expect(screen.getByText(/modifyreport/i)).toBeInTheDocument();\n });\n\n it(\"remove a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n const mockedReportsOriginalLength = mockedReports.reports!.length;\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n ),\n rest.delete(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${\n mockedReports.reports![0].id\n }`,\n async (_req, res, ctx) => {\n mockedReports.reports = mockedReports.reports!.filter(\n (report) => report.id !== mockedReports.reports![0].id\n );\n return res(ctx.delay(100), ctx.status(204));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const removeButton = screen.getByRole(\"menuitem\", { name: /remove/i });\n await user.click(removeButton);\n // Delete modal dialog should appear\n expect(screen.getByRole(\"dialog\")).toBeInTheDocument();\n\n const deleteButton = screen.getByRole(\"button\", {\n name: /delete/i,\n });\n\n await user.click(deleteButton);\n\n await waitForElementToBeRemoved(() =>\n screen.getByTestId(/rcw-loading-delete/i)\n );\n await waitForElementToBeRemoved(() => screen.getByRole(\"dialog\"));\n\n // Should be one less report\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(\n mockedReportsOriginalLength - 1\n );\n });\n\n it(\"search for a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const searchButton = within(screen.getByTestId(/search-bar/i)).getByRole(\n \"button\"\n );\n await user.click(searchButton);\n const searchInput = screen.getByRole(\"textbox\", {\n name: /search\\-textbox/i,\n });\n\n // Be an exact match on display name.\n await userEvent.type(\n searchInput,\n mockedReports.reports![0].displayName ?? \"\"\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports![0].displayName ?? \"\")\n ).toBeInTheDocument();\n\n // Be an exact match on description.\n await userEvent.clear(searchInput);\n await userEvent.type(\n searchInput,\n mockedReports.reports![0].description ?? \"\"\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports![0].displayName ?? \"\")\n ).toBeInTheDocument();\n });\n\n it(\"modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n // Modify report should appear\n expect(screen.getByText(/modifyreport/i)).toBeInTheDocument();\n });\n\n it(\"click a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const reportName = screen.getByText(\n mockedReports.reports![0].displayName ?? \"\"\n );\n await user.click(reportName);\n expect(screen.getByText(/MockReportMappings/i)).toBeInTheDocument();\n });\n});\n"]}
1
+ {"version":3,"file":"Reports.test.js","sourceRoot":"","sources":["../../../src/test/Reports.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport {\n render,\n screen,\n TestUtils,\n waitForElementToBeRemoved,\n within,\n} from \"../test/test-utils\";\nimport { Reports } from \"../widget/components/Reports\";\nimport type {\n IModelConnection,\n SelectionSet,\n SelectionSetEvent,\n} from \"@itwin/core-frontend\";\nimport { NoRenderApp } from \"@itwin/core-frontend\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport { rest } from \"msw\";\nimport { setupServer } from \"msw/node\";\nimport * as moq from \"typemoq\";\nimport type {\n SelectionManager,\n SelectionScopesManager,\n} from \"@itwin/presentation-frontend\";\nimport {\n Presentation,\n SelectionChangeEvent,\n} from \"@itwin/presentation-frontend\";\nimport faker from \"@faker-js/faker\";\nimport type { ReportCollection } from \"@itwin/insights-client\";\nimport userEvent from \"@testing-library/user-event\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../widget/ReportsConfigUiProvider\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\n\nconst mockITwinId = faker.datatype.uuid();\nconst mockIModelId = faker.datatype.uuid();\n\nconst reportsFactory = (): ReportCollection => ({\n reports: Array.from(\n { length: faker.datatype.number({ min: 3, max: 5 }) },\n (_, index) => ({\n id: `${faker.datatype.uuid()}`,\n displayName: `mOcKRePoRT${index}`,\n description: `mOcKRePoRTDeScRiPtIoN${index}`,\n deleted: false,\n _links: {\n project: {\n href: \"\",\n },\n },\n })\n ),\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n});\n\nconst connectionMock = moq.Mock.ofType<IModelConnection>();\nconst selectionManagerMock = moq.Mock.ofType<SelectionManager>();\nconst selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();\n\njest.mock(\"@itwin/appui-react\", () => ({\n ...jest.requireActual(\"@itwin/appui-react\"),\n useActiveIModelConnection: () => connectionMock.object,\n}));\n\njest.mock(\"../widget/components/ReportMappings\", () => ({\n ReportMappings: () => \"MockReportMappings\",\n}));\n\nconst server = setupServer();\n\nbeforeAll(async () => {\n // This is required by the i18n module within iTwin.js\n (global as any).XMLHttpRequest = require(\"xmlhttprequest\").XMLHttpRequest; // eslint-disable-line @typescript-eslint/no-var-requires\n\n await NoRenderApp.startup();\n await Presentation.initialize();\n const selectionSet = moq.Mock.ofType<SelectionSet>();\n const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();\n selectionSet.setup((x) => x.elements).returns(() => new Set([]));\n selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);\n connectionMock\n .setup((x) => x.selectionSet)\n .returns(() => selectionSet.object);\n connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);\n connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);\n\n selectionManagerMock\n .setup((x) => x.selectionChange)\n .returns(() => new SelectionChangeEvent());\n\n selectionScopesManagerMock\n .setup(async (x) => x.getSelectionScopes(connectionMock.object))\n .returns(async () => []);\n selectionManagerMock\n .setup((x) => x.scopes)\n .returns(() => selectionScopesManagerMock.object);\n\n Presentation.setSelectionManager(selectionManagerMock.object);\n await TestUtils.initializeUiFramework(connectionMock.object);\n await ReportsConfigWidget.initialize();\n server.listen();\n});\n\nafterAll(() => {\n TestUtils.terminateUiFramework();\n server.close();\n});\n\nafterEach(() => server.resetHandlers());\n\ndescribe(\"Reports View\", () => {\n it(\"call to action button should be clickable with no reports\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const ctaButton = screen.getByRole(\"button\", {\n name: /createonereportcta/i,\n });\n await user.click(ctaButton);\n expect(screen.getByText(/addreport/i)).toBeInTheDocument();\n });\n\n it(\"be able to add new report\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const newButton = screen.getByRole(\"button\", {\n name: /new/i,\n });\n await user.click(newButton);\n expect(screen.getByText(/addreport/i)).toBeInTheDocument();\n });\n\n it(\"list all reports\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const horizontalTiles = screen.getAllByTestId(\"horizontal-tile\");\n // TODO check for all descriptions and names and imodels\n expect(horizontalTiles).toHaveLength(mockedReports?.reports.length);\n\n for (const [index, horizontalTile] of horizontalTiles.entries()) {\n const reportMappingTile = within(horizontalTile);\n expect(\n reportMappingTile.getByText(\n mockedReports?.reports[index].displayName ?? \"\"\n )\n ).toBeInTheDocument();\n expect(\n reportMappingTile.getByTitle(\n mockedReports?.reports[index].description ?? \"\"\n )\n ).toBeInTheDocument();\n }\n });\n\n it(\"able to modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n\n expect(screen.getByText(/modifyreport/i)).toBeInTheDocument();\n });\n\n it(\"remove a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n const mockedReportsOriginalLength = mockedReports.reports.length;\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n ),\n rest.delete(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockedReports.reports[0].id\n }`,\n async (_req, res, ctx) => {\n mockedReports.reports = mockedReports.reports.filter(\n (report) => report.id !== mockedReports.reports[0].id\n );\n return res(ctx.delay(100), ctx.status(204));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const removeButton = screen.getByRole(\"menuitem\", { name: /remove/i });\n await user.click(removeButton);\n // Delete modal dialog should appear\n expect(screen.getByRole(\"dialog\")).toBeInTheDocument();\n\n const deleteButton = screen.getByRole(\"button\", {\n name: /delete/i,\n });\n\n await user.click(deleteButton);\n\n await waitForElementToBeRemoved(() =>\n screen.getByTestId(/rcw-loading-delete/i)\n );\n await waitForElementToBeRemoved(() => screen.getByRole(\"dialog\"));\n\n // Should be one less report\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(\n mockedReportsOriginalLength - 1\n );\n });\n\n it(\"search for a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const searchButton = within(screen.getByTestId(/search-bar/i)).getByRole(\n \"button\"\n );\n await user.click(searchButton);\n const searchInput = screen.getByRole(\"textbox\", {\n name: /search\\-textbox/i,\n });\n\n // Be an exact match on display name.\n await userEvent.type(\n searchInput,\n mockedReports.reports[0].displayName\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports[0].displayName)\n ).toBeInTheDocument();\n\n // Be an exact match on description.\n await userEvent.clear(searchInput);\n await userEvent.type(\n searchInput,\n mockedReports.reports[0].description ?? \"\"\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports[0].displayName)\n ).toBeInTheDocument();\n });\n\n it(\"modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n // Modify report should appear\n expect(screen.getByText(/modifyreport/i)).toBeInTheDocument();\n });\n\n it(\"click a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const reportName = screen.getByText(\n mockedReports.reports[0].displayName\n );\n await user.click(reportName);\n expect(screen.getByText(/MockReportMappings/i)).toBeInTheDocument();\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/test/test-utils.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAAC;AAM7D,SAAS,MAAM,CAAC,EAAsB,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;IACzD,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAgB,EAAE,EAAE,CAAC,CAC9C,oBAAC,uBAAuB,CAAC,QAAQ,IAC/B,KAAK,EAAE;YACL,cAAc,EAAE,eAAe;YAC/B,OAAO,EAAE,uBAAuB;SACjC,IAEA,QAAQ,CACwB,CACpC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE;QACvB,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,cAAc,wBAAwB,CAAC;AACvC,uDAAuD;AACvD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,cAAc;QAC1B,MAAM,WAAW,GAAG,eAAe,CAAC;YAClC,cAAc,EAAE,gBAAgB;SACjC,CAAC,CAAC;QAEH,OAAO,WAAW,CAChB,WAAW,EACV,MAAc,CAAC,4BAA4B;YACzC,MAAc,CAAC,4BAA4B,EAAE,CACjD,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAoB;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEpC,8CAA8C;QAC9C,2FAA2F;QAC3F,cAAc;QACd,6CAA6C;QAE7C,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C;IACxF,CAAC;IAEM,MAAM,CAAC,oBAAoB;QAChC,mBAAmB,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport * as React from \"react\";\nimport { render as rtlRender } from \"@testing-library/react\";\nimport { ReportsApiConfigContext } from \"../widget/context/ReportsApiConfigContext\";\nimport type { Store } from \"redux\";\nimport { combineReducers, createStore } from \"redux\";\nimport {\n FrameworkReducer,\n SyncUiEventDispatcher,\n UiFramework,\n} from \"@itwin/appui-react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport userEvent from \"@testing-library/user-event\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../widget/ReportsConfigUiProvider\";\n\nexport const mockAccessToken = async () => \"Bearer eyJhbGci\";\n\ninterface WrapperProps {\n children?: React.ReactNode;\n}\n\nfunction render(ui: React.ReactElement, { ...options } = {}) {\n const Wrapper = ({ children }: WrapperProps) => (\n <ReportsApiConfigContext.Provider\n value={{\n getAccessToken: mockAccessToken,\n baseUrl: REPORTS_CONFIG_BASE_URL,\n }}\n >\n {children}\n </ReportsApiConfigContext.Provider>\n );\n\n return {\n user: userEvent.setup(),\n ...rtlRender(ui, { wrapper: Wrapper, ...options }),\n };\n}\n\nexport * from \"@testing-library/react\";\n// override React Testing Library's render with our own\nexport { render };\n\nexport class TestUtils {\n public static createAppStore(): Store {\n const rootReducer = combineReducers({\n frameworkState: FrameworkReducer,\n });\n\n return createStore(\n rootReducer,\n (window as any).__REDUX_DEVTOOLS_EXTENSION__ &&\n (window as any).__REDUX_DEVTOOLS_EXTENSION__()\n );\n }\n\n public static async initializeUiFramework(_?: IModelConnection) {\n const store = this.createAppStore();\n\n await UiFramework.initialize(store);\n\n // Set the iModelConnection in the Redux store\n // Can not get it to function as intended. Store does not update with the iModel connection\n // if (imodel)\n // UiFramework.setIModelConnection(imodel);\n\n SyncUiEventDispatcher.setTimeoutPeriod(0); // disables non-immediate event processing.\n }\n\n public static terminateUiFramework() {\n ReportsConfigWidget.terminate();\n }\n}\n"]}
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/test/test-utils.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAAC;AAM7D,SAAS,MAAM,CAAC,EAAsB,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;IACzD,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAgB,EAAE,EAAE,CAAC,CAC9C,oBAAC,uBAAuB,CAAC,QAAQ,IAC/B,KAAK,EAAE;YACL,cAAc,EAAE,eAAe;YAC/B,OAAO,EAAE,uBAAuB;SACjC,IAEA,QAAQ,CACwB,CACpC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE;QACvB,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,cAAc,wBAAwB,CAAC;AACvC,uDAAuD;AACvD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,MAAM,OAAO,SAAS;IACb,MAAM,CAAC,cAAc;QAC1B,MAAM,WAAW,GAAG,eAAe,CAAC;YAClC,cAAc,EAAE,gBAAgB;SACjC,CAAC,CAAC;QAEH,OAAO,WAAW,CAChB,WAAW,EACV,MAAc,CAAC,4BAA4B;YAC3C,MAAc,CAAC,4BAA4B,EAAE,CAC/C,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAoB;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEpC,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEpC,8CAA8C;QAC9C,2FAA2F;QAC3F,cAAc;QACd,6CAA6C;QAE7C,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C;IACxF,CAAC;IAEM,MAAM,CAAC,oBAAoB;QAChC,mBAAmB,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport * as React from \"react\";\nimport { render as rtlRender } from \"@testing-library/react\";\nimport { ReportsApiConfigContext } from \"../widget/context/ReportsApiConfigContext\";\nimport type { Store } from \"redux\";\nimport { combineReducers, createStore } from \"redux\";\nimport {\n FrameworkReducer,\n SyncUiEventDispatcher,\n UiFramework,\n} from \"@itwin/appui-react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport userEvent from \"@testing-library/user-event\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../widget/ReportsConfigUiProvider\";\n\nexport const mockAccessToken = async () => \"Bearer eyJhbGci\";\n\ninterface WrapperProps {\n children?: React.ReactNode;\n}\n\nfunction render(ui: React.ReactElement, { ...options } = {}) {\n const Wrapper = ({ children }: WrapperProps) => (\n <ReportsApiConfigContext.Provider\n value={{\n getAccessToken: mockAccessToken,\n baseUrl: REPORTS_CONFIG_BASE_URL,\n }}\n >\n {children}\n </ReportsApiConfigContext.Provider>\n );\n\n return {\n user: userEvent.setup(),\n ...rtlRender(ui, { wrapper: Wrapper, ...options }),\n };\n}\n\nexport * from \"@testing-library/react\";\n// override React Testing Library's render with our own\nexport { render };\n\nexport class TestUtils {\n public static createAppStore(): Store {\n const rootReducer = combineReducers({\n frameworkState: FrameworkReducer,\n });\n\n return createStore(\n rootReducer,\n (window as any).__REDUX_DEVTOOLS_EXTENSION__ &&\n (window as any).__REDUX_DEVTOOLS_EXTENSION__()\n );\n }\n\n public static async initializeUiFramework(_?: IModelConnection) {\n const store = this.createAppStore();\n\n await UiFramework.initialize(store);\n\n // Set the iModelConnection in the Redux store\n // Can not get it to function as intended. Store does not update with the iModel connection\n // if (imodel)\n // UiFramework.setIModelConnection(imodel);\n\n SyncUiEventDispatcher.setTimeoutPeriod(0); // disables non-immediate event processing.\n }\n\n public static terminateUiFramework() {\n ReportsConfigWidget.terminate();\n }\n}\n"]}