@pod-os/elements 0.13.1-9efc307.0 → 0.13.1-cd22eb8.0
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.
- package/dist/cjs/elements.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -3
- package/dist/elements/elements.esm.js +1 -1
- package/dist/elements/elements.esm.js.map +1 -1
- package/dist/esm/elements.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components.d.ts +0 -13
- package/package.json +1 -1
- package/dist/cjs/test-component.cjs.entry.js +0 -15
- package/dist/cjs/test-component.cjs.entry.js.map +0 -1
- package/dist/collection/apps/pos-app-document-viewer/pos-app-document-viewer.spec.js +0 -29
- package/dist/collection/apps/pos-app-document-viewer/pos-app-document-viewer.spec.js.map +0 -1
- package/dist/collection/apps/pos-app-image-viewer/pos-app-image-viewer.spec.js +0 -29
- package/dist/collection/apps/pos-app-image-viewer/pos-app-image-viewer.spec.js.map +0 -1
- package/dist/collection/components/broken-file/BrokenFile.spec.js +0 -45
- package/dist/collection/components/broken-file/BrokenFile.spec.js.map +0 -1
- package/dist/collection/components/pos-add-literal-value/test/pos-add-literal-value.spec.js +0 -185
- package/dist/collection/components/pos-add-literal-value/test/pos-add-literal-value.spec.js.map +0 -1
- package/dist/collection/components/pos-add-new-thing/test/pos-add-new-thing.spec.js +0 -59
- package/dist/collection/components/pos-add-new-thing/test/pos-add-new-thing.spec.js.map +0 -1
- package/dist/collection/components/pos-container-contents/pos-container-contents.spec.js +0 -132
- package/dist/collection/components/pos-container-contents/pos-container-contents.spec.js.map +0 -1
- package/dist/collection/components/pos-container-contents/pos-container-item.spec.js +0 -64
- package/dist/collection/components/pos-container-contents/pos-container-item.spec.js.map +0 -1
- package/dist/collection/components/pos-container-contents/selectIconForTypes.spec.js +0 -30
- package/dist/collection/components/pos-container-contents/selectIconForTypes.spec.js.map +0 -1
- package/dist/collection/components/pos-description/pos-description.spec.js +0 -31
- package/dist/collection/components/pos-description/pos-description.spec.js.map +0 -1
- package/dist/collection/components/pos-document/pos-document.spec.js +0 -219
- package/dist/collection/components/pos-document/pos-document.spec.js.map +0 -1
- package/dist/collection/components/pos-error-toast/test/pos-error-toast.spec.js +0 -18
- package/dist/collection/components/pos-error-toast/test/pos-error-toast.spec.js.map +0 -1
- package/dist/collection/components/pos-image/pos-image.integration.spec.js +0 -124
- package/dist/collection/components/pos-image/pos-image.integration.spec.js.map +0 -1
- package/dist/collection/components/pos-image/pos-image.spec.js +0 -219
- package/dist/collection/components/pos-image/pos-image.spec.js.map +0 -1
- package/dist/collection/components/pos-label/pos-label.integration.spec.js +0 -101
- package/dist/collection/components/pos-label/pos-label.integration.spec.js.map +0 -1
- package/dist/collection/components/pos-label/pos-label.spec.js +0 -31
- package/dist/collection/components/pos-label/pos-label.spec.js.map +0 -1
- package/dist/collection/components/pos-literals/pos-literals.spec.js +0 -118
- package/dist/collection/components/pos-literals/pos-literals.spec.js.map +0 -1
- package/dist/collection/components/pos-login/pos-login.integration.spec.js +0 -35
- package/dist/collection/components/pos-login/pos-login.integration.spec.js.map +0 -1
- package/dist/collection/components/pos-login/pos-login.spec.js +0 -46
- package/dist/collection/components/pos-login/pos-login.spec.js.map +0 -1
- package/dist/collection/components/pos-navigation-bar/pos-navigation-bar.spec.js +0 -41
- package/dist/collection/components/pos-navigation-bar/pos-navigation-bar.spec.js.map +0 -1
- package/dist/collection/components/pos-new-thing-form/test/pos-new-thing-form.spec.js +0 -239
- package/dist/collection/components/pos-new-thing-form/test/pos-new-thing-form.spec.js.map +0 -1
- package/dist/collection/components/pos-picture/pos-picture.integration.spec.js +0 -79
- package/dist/collection/components/pos-picture/pos-picture.integration.spec.js.map +0 -1
- package/dist/collection/components/pos-picture/pos-picture.spec.js +0 -49
- package/dist/collection/components/pos-picture/pos-picture.spec.js.map +0 -1
- package/dist/collection/components/pos-relations/pos-relations.spec.js +0 -64
- package/dist/collection/components/pos-relations/pos-relations.spec.js.map +0 -1
- package/dist/collection/components/pos-resource/pos-resource.integration.spec.js +0 -355
- package/dist/collection/components/pos-resource/pos-resource.integration.spec.js.map +0 -1
- package/dist/collection/components/pos-resource/pos-resource.spec.js +0 -237
- package/dist/collection/components/pos-resource/pos-resource.spec.js.map +0 -1
- package/dist/collection/components/pos-reverse-relations/pos-reverse-relations.spec.js +0 -64
- package/dist/collection/components/pos-reverse-relations/pos-reverse-relations.spec.js.map +0 -1
- package/dist/collection/components/pos-rich-link/pos-rich-link.spec.js +0 -37
- package/dist/collection/components/pos-rich-link/pos-rich-link.spec.js.map +0 -1
- package/dist/collection/components/pos-select-term/test/pos-select-term.spec.js +0 -75
- package/dist/collection/components/pos-select-term/test/pos-select-term.spec.js.map +0 -1
- package/dist/collection/components/pos-subjects/pos-subjects.spec.js +0 -58
- package/dist/collection/components/pos-subjects/pos-subjects.spec.js.map +0 -1
- package/dist/collection/components/pos-type-badges/pos-type-badges.spec.js +0 -119
- package/dist/collection/components/pos-type-badges/pos-type-badges.spec.js.map +0 -1
- package/dist/collection/components/pos-type-router/pos-type-router.spec.js +0 -105
- package/dist/collection/components/pos-type-router/pos-type-router.spec.js.map +0 -1
- package/dist/collection/components/pos-type-router/selectAppForTypes.spec.js +0 -85
- package/dist/collection/components/pos-type-router/selectAppForTypes.spec.js.map +0 -1
- package/dist/collection/components/pos-value/pos-value.spec.js +0 -31
- package/dist/collection/components/pos-value/pos-value.spec.js.map +0 -1
- package/dist/collection/test/TestComponent.js +0 -4
- package/dist/collection/test/TestComponent.js.map +0 -1
- package/dist/collection/test/mockPodOS.js +0 -38
- package/dist/collection/test/mockPodOS.js.map +0 -1
- package/dist/collection/test/renderFunctionalComponent.js +0 -9
- package/dist/collection/test/renderFunctionalComponent.js.map +0 -1
- package/dist/components/test-component.d.ts +0 -11
- package/dist/components/test-component.js +0 -9
- package/dist/components/test-component.js.map +0 -1
- package/dist/elements/p-c5bcab34.entry.js +0 -2
- package/dist/elements/p-c5bcab34.entry.js.map +0 -1
- package/dist/esm/test-component.entry.js +0 -11
- package/dist/esm/test-component.entry.js.map +0 -1
- package/dist/types/test/TestComponent.d.ts +0 -2
- package/dist/types/test/mockPodOS.d.ts +0 -13
- package/dist/types/test/renderFunctionalComponent.d.ts +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pos-image.spec.js","sourceRoot":"","sources":["../../../../src/components/pos-image/pos-image.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["jest.mock('../../store/session');\njest.mock('../broken-file/BrokenFile');\n\nimport { BinaryFile, BrokenFile as BrokenFileData } from '@pod-os/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { Blob } from 'buffer';\nimport { mockPodOS } from '../../test/mockPodOS';\nimport { BrokenFile } from '../broken-file/BrokenFile';\nimport { PosImage } from './pos-image';\nimport { when } from 'jest-when';\nimport { h } from '@stencil/core';\n\nimport session from '../../store/session';\n\ndescribe('pos-image', () => {\n let pngBlob;\n beforeEach(() => {\n pngBlob = new Blob(['1'], {\n type: 'image/png',\n });\n });\n\n beforeEach(() => {\n jest.spyOn(URL, 'createObjectURL').mockReturnValue('blob:fake-png-data');\n });\n\n it('renders loading indicator initially', async () => {\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" alt=\"image\" />`,\n });\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/image.png\" alt=\"image\">\n <mock:shadow-root>\n <ion-skeleton-text animated=\"\"></ion-skeleton-text>\n </mock:shadow-root>\n </pos-image>\n `);\n });\n\n it('renders loading indicator while fetching', async () => {\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" alt=\"image\" />`,\n });\n const os = mockPodOS();\n when(os.fetchFile)\n .calledWith('https://pod.test/image.png')\n .mockReturnValue(new Promise(() => null));\n await page.rootInstance.setOs(os);\n await page.waitForChanges();\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/image.png\" alt=\"image\">\n <mock:shadow-root>\n <ion-skeleton-text animated=\"\"></ion-skeleton-text>\n </mock:shadow-root>\n </pos-image>\n `);\n });\n\n it('renders img after loading', async () => {\n const file = mockBinaryFile(pngBlob);\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" alt=\"image\" />`,\n });\n const os = mockPodOS();\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockResolvedValue(file);\n await page.rootInstance.setOs(os);\n await page.waitForChanges();\n expect(URL.createObjectURL).toHaveBeenCalledWith(pngBlob);\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/image.png\" alt=\"image\">\n <mock:shadow-root>\n <img src=\"blob:fake-png-data\" alt=\"image\">\n </mock:shadow-root>\n </pos-image>\n `);\n });\n\n it('emits event after loading image', async () => {\n const onResourceLoaded = jest.fn();\n const file = mockBinaryFile(pngBlob);\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" alt=\"image\" />`,\n });\n page.root.addEventListener('pod-os:resource-loaded', onResourceLoaded);\n const os = mockPodOS();\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockResolvedValue(file);\n await page.rootInstance.setOs(os);\n await page.waitForChanges();\n expect(onResourceLoaded).toHaveBeenCalled();\n expect(onResourceLoaded.mock.calls[0][0].detail).toEqual('https://pod.test/image.png');\n });\n\n it('renders error when fetch failed', async () => {\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" />`,\n });\n const os = mockPodOS();\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockRejectedValue(new Error('network error'));\n await page.rootInstance.setOs(os);\n await page.waitForChanges();\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/image.png\">\n <mock:shadow-root>\n <div class=\"error\">\n network error\n </div>\n </mock:shadow-root>\n </pos-image>\n `);\n });\n\n it('renders error for inaccessible file', async () => {\n const brokenImage = {\n blob: () => null,\n toString: () => '403 - Forbidden - https://pod.test/image.png',\n } as unknown as BrokenFileData;\n when(BrokenFile).mockReturnValue(<div class=\"error\">403 - Forbidden - https://pod.test/image.png</div>);\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" />`,\n });\n const os = mockPodOS();\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockResolvedValue(brokenImage);\n await page.rootInstance.setOs(os);\n await page.waitForChanges();\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/image.png\">\n <mock:shadow-root>\n <div class=\"error\">\n 403 - Forbidden - https://pod.test/image.png\n </div>\n </mock:shadow-root>\n </pos-image>\n `);\n });\n\n it('updates and loads resource when src changes', async () => {\n const file = mockBinaryFile(pngBlob);\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" />`,\n });\n const os = mockPodOS();\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockResolvedValue(file);\n when(os.fetchFile)\n .calledWith('https://pod.test/other.png')\n .mockReturnValue(new Promise(() => null));\n await page.rootInstance.setOs(os);\n page.root.setAttribute('src', 'https://pod.test/other.png');\n await page.waitForChanges();\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/other.png\">\n <mock:shadow-root>\n <ion-skeleton-text animated=\"\"></ion-skeleton-text>\n </mock:shadow-root>\n </pos-image>\n `);\n });\n\n it('re-fetches resource when session state changes', async () => {\n const file = mockBinaryFile(pngBlob);\n let sessionChanged;\n // @ts-ignore\n session.onChange = (prop, callback) => {\n if (prop === 'isLoggedIn') {\n sessionChanged = callback;\n }\n };\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" />`,\n });\n const os = mockPodOS();\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockResolvedValueOnce(file);\n when(os.fetchFile)\n .calledWith('https://pod.test/image.png')\n .mockReturnValueOnce(new Promise(() => null));\n await page.rootInstance.setOs(os);\n expect(sessionChanged).toBeDefined();\n sessionChanged();\n await page.waitForChanges();\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/image.png\">\n <mock:shadow-root>\n <ion-skeleton-text animated=\"\"></ion-skeleton-text>\n </mock:shadow-root>\n </pos-image>\n `);\n });\n\n it('removes error message after successful loading', async () => {\n const file = mockBinaryFile(pngBlob);\n const unauthorizedFile = {\n toString: () => 'Unauthorized',\n } as BrokenFileData;\n let sessionChanged;\n // @ts-ignore\n session.onChange = (prop, callback) => {\n if (prop === 'isLoggedIn') {\n sessionChanged = callback;\n }\n };\n const page = await newSpecPage({\n components: [PosImage],\n html: `<pos-image src=\"https://pod.test/image.png\" />`,\n });\n const os = mockPodOS();\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockResolvedValueOnce(unauthorizedFile);\n when(os.fetchFile).calledWith('https://pod.test/image.png').mockResolvedValueOnce(file);\n await page.rootInstance.setOs(os);\n expect(sessionChanged).toBeDefined();\n sessionChanged();\n await page.waitForChanges();\n expect(page.root).toEqualHtml(`\n <pos-image src=\"https://pod.test/image.png\">\n <mock:shadow-root>\n <img src=\"blob:fake-png-data\">\n </mock:shadow-root>\n </pos-image>\n `);\n });\n});\n\nfunction mockBinaryFile(pngBlob) {\n return {\n blob: () => pngBlob,\n } as BinaryFile;\n}\n"]}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { mockPodOS } from "../../test/mockPodOS";
|
|
3
|
-
import { PosApp } from "../pos-app/pos-app";
|
|
4
|
-
import { PosResource } from "../pos-resource/pos-resource";
|
|
5
|
-
import { PosLabel } from "./pos-label";
|
|
6
|
-
import { when } from "jest-when";
|
|
7
|
-
describe('pos-label', () => {
|
|
8
|
-
it('renders label for successfully loaded resource', async () => {
|
|
9
|
-
const os = mockPodOS();
|
|
10
|
-
when(os.fetch).calledWith('https://resource.test').mockReturnValue(Promise.resolve());
|
|
11
|
-
when(os.store.get)
|
|
12
|
-
.calledWith('https://resource.test')
|
|
13
|
-
.mockReturnValue({
|
|
14
|
-
label: () => 'Test Resource',
|
|
15
|
-
});
|
|
16
|
-
const page = await newSpecPage({
|
|
17
|
-
components: [PosApp, PosResource, PosLabel],
|
|
18
|
-
html: `<pos-app>
|
|
19
|
-
<pos-resource uri="https://resource.test">
|
|
20
|
-
<pos-label />
|
|
21
|
-
</pos-resource>
|
|
22
|
-
</pos-app>`,
|
|
23
|
-
});
|
|
24
|
-
const label = page.root.querySelector('pos-label');
|
|
25
|
-
expect(label).toEqualHtml(`
|
|
26
|
-
<pos-label>
|
|
27
|
-
<mock:shadow-root>
|
|
28
|
-
Test Resource
|
|
29
|
-
</mock:shadow-root>
|
|
30
|
-
</pos-label>
|
|
31
|
-
`);
|
|
32
|
-
});
|
|
33
|
-
it('renders label after successfully loading resource', async () => {
|
|
34
|
-
const os = mockPodOS();
|
|
35
|
-
const loadingPromise = new Promise(resolve => setTimeout(resolve, 1));
|
|
36
|
-
when(os.fetch).calledWith('https://resource.test').mockReturnValue(loadingPromise);
|
|
37
|
-
when(os.store.get)
|
|
38
|
-
.calledWith('https://resource.test')
|
|
39
|
-
.mockReturnValue({
|
|
40
|
-
label: () => 'Test Resource',
|
|
41
|
-
});
|
|
42
|
-
const page = await newSpecPage({
|
|
43
|
-
components: [PosApp, PosResource, PosLabel],
|
|
44
|
-
html: `<pos-app>
|
|
45
|
-
<pos-resource uri="https://resource.test">
|
|
46
|
-
<pos-label />
|
|
47
|
-
</pos-resource>
|
|
48
|
-
</pos-app>`,
|
|
49
|
-
});
|
|
50
|
-
await loadingPromise;
|
|
51
|
-
await page.waitForChanges();
|
|
52
|
-
const label = page.root.querySelector('pos-label');
|
|
53
|
-
expect(label).toEqualHtml(`
|
|
54
|
-
<pos-label>
|
|
55
|
-
<mock:shadow-root>
|
|
56
|
-
Test Resource
|
|
57
|
-
</mock:shadow-root>
|
|
58
|
-
</pos-label>
|
|
59
|
-
`);
|
|
60
|
-
});
|
|
61
|
-
it('renders nothing while loading resource', async () => {
|
|
62
|
-
const os = mockPodOS();
|
|
63
|
-
const loadingPromise = new Promise(resolve => setTimeout(resolve, 1));
|
|
64
|
-
when(os.fetch).calledWith('https://resource.test').mockReturnValue(loadingPromise);
|
|
65
|
-
const page = await newSpecPage({
|
|
66
|
-
components: [PosApp, PosResource, PosLabel],
|
|
67
|
-
html: `<pos-app>
|
|
68
|
-
<pos-resource uri="https://resource.test">
|
|
69
|
-
<pos-label />
|
|
70
|
-
</pos-resource>
|
|
71
|
-
</pos-app>`,
|
|
72
|
-
});
|
|
73
|
-
const label = page.root.querySelector('pos-label');
|
|
74
|
-
expect(label).toEqualHtml(`
|
|
75
|
-
<pos-label>
|
|
76
|
-
<mock:shadow-root></mock:shadow-root>
|
|
77
|
-
</pos-label>
|
|
78
|
-
`);
|
|
79
|
-
await loadingPromise;
|
|
80
|
-
});
|
|
81
|
-
it('renders nothing when resource loading failed', async () => {
|
|
82
|
-
const os = mockPodOS();
|
|
83
|
-
const rejectedPromise = Promise.reject(new Error('not found'));
|
|
84
|
-
when(os.fetch).calledWith('https://resource.test').mockReturnValue(rejectedPromise);
|
|
85
|
-
const page = await newSpecPage({
|
|
86
|
-
components: [PosApp, PosResource, PosLabel],
|
|
87
|
-
html: `<pos-app>
|
|
88
|
-
<pos-resource uri="https://resource.test">
|
|
89
|
-
<pos-label />
|
|
90
|
-
</pos-resource>
|
|
91
|
-
</pos-app>`,
|
|
92
|
-
});
|
|
93
|
-
const label = page.root.querySelector('pos-label');
|
|
94
|
-
expect(label).toEqualHtml(`
|
|
95
|
-
<pos-label>
|
|
96
|
-
<mock:shadow-root></mock:shadow-root>
|
|
97
|
-
</pos-label>
|
|
98
|
-
`);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
//# sourceMappingURL=pos-label.integration.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pos-label.integration.spec.js","sourceRoot":"","sources":["../../../../src/components/pos-label/pos-label.integration.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { mockPodOS } from '../../test/mockPodOS';\nimport { PosApp } from '../pos-app/pos-app';\nimport { PosResource } from '../pos-resource/pos-resource';\nimport { PosLabel } from './pos-label';\nimport { when } from 'jest-when';\n\ndescribe('pos-label', () => {\n it('renders label for successfully loaded resource', async () => {\n const os = mockPodOS();\n when(os.fetch).calledWith('https://resource.test').mockReturnValue(Promise.resolve());\n when(os.store.get)\n .calledWith('https://resource.test')\n .mockReturnValue({\n label: () => 'Test Resource',\n });\n const page = await newSpecPage({\n components: [PosApp, PosResource, PosLabel],\n html: `<pos-app>\n <pos-resource uri=\"https://resource.test\">\n <pos-label />\n </pos-resource>\n </pos-app>`,\n });\n const label = page.root.querySelector('pos-label');\n expect(label).toEqualHtml(`\n <pos-label>\n <mock:shadow-root>\n Test Resource\n </mock:shadow-root>\n </pos-label>\n `);\n });\n\n it('renders label after successfully loading resource', async () => {\n const os = mockPodOS();\n const loadingPromise = new Promise(resolve => setTimeout(resolve, 1));\n when(os.fetch).calledWith('https://resource.test').mockReturnValue(loadingPromise);\n when(os.store.get)\n .calledWith('https://resource.test')\n .mockReturnValue({\n label: () => 'Test Resource',\n });\n const page = await newSpecPage({\n components: [PosApp, PosResource, PosLabel],\n html: `<pos-app>\n <pos-resource uri=\"https://resource.test\">\n <pos-label />\n </pos-resource>\n </pos-app>`,\n });\n await loadingPromise;\n await page.waitForChanges();\n const label = page.root.querySelector('pos-label');\n expect(label).toEqualHtml(`\n <pos-label>\n <mock:shadow-root>\n Test Resource\n </mock:shadow-root>\n </pos-label>\n `);\n });\n\n it('renders nothing while loading resource', async () => {\n const os = mockPodOS();\n const loadingPromise = new Promise(resolve => setTimeout(resolve, 1));\n when(os.fetch).calledWith('https://resource.test').mockReturnValue(loadingPromise);\n const page = await newSpecPage({\n components: [PosApp, PosResource, PosLabel],\n html: `<pos-app>\n <pos-resource uri=\"https://resource.test\">\n <pos-label />\n </pos-resource>\n </pos-app>`,\n });\n const label = page.root.querySelector('pos-label');\n expect(label).toEqualHtml(`\n <pos-label>\n <mock:shadow-root></mock:shadow-root>\n </pos-label>\n `);\n await loadingPromise;\n });\n\n it('renders nothing when resource loading failed', async () => {\n const os = mockPodOS();\n const rejectedPromise = Promise.reject(new Error('not found'));\n when(os.fetch).calledWith('https://resource.test').mockReturnValue(rejectedPromise);\n const page = await newSpecPage({\n components: [PosApp, PosResource, PosLabel],\n html: `<pos-app>\n <pos-resource uri=\"https://resource.test\">\n <pos-label />\n </pos-resource>\n </pos-app>`,\n });\n const label = page.root.querySelector('pos-label');\n expect(label).toEqualHtml(`\n <pos-label>\n <mock:shadow-root></mock:shadow-root>\n </pos-label>\n `);\n });\n});\n"]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { PosLabel } from "./pos-label";
|
|
3
|
-
describe('pos-label', () => {
|
|
4
|
-
it('is empty initially', async () => {
|
|
5
|
-
const page = await newSpecPage({
|
|
6
|
-
components: [PosLabel],
|
|
7
|
-
html: `<pos-label />`,
|
|
8
|
-
});
|
|
9
|
-
expect(page.root).toEqualHtml(`
|
|
10
|
-
<pos-label>
|
|
11
|
-
<mock:shadow-root></mock:shadow-root>
|
|
12
|
-
</pos-label>
|
|
13
|
-
`);
|
|
14
|
-
});
|
|
15
|
-
it('renders label from resource', async () => {
|
|
16
|
-
const page = await newSpecPage({
|
|
17
|
-
components: [PosLabel],
|
|
18
|
-
html: `<pos-label />`,
|
|
19
|
-
});
|
|
20
|
-
await page.rootInstance.receiveResource({
|
|
21
|
-
label: () => 'Test Resource',
|
|
22
|
-
});
|
|
23
|
-
await page.waitForChanges();
|
|
24
|
-
expect(page.root).toEqualHtml(`
|
|
25
|
-
<pos-label>
|
|
26
|
-
<mock:shadow-root>Test Resource</mock:shadow-root>
|
|
27
|
-
</pos-label>
|
|
28
|
-
`);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=pos-label.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pos-label.spec.js","sourceRoot":"","sources":["../../../../src/components/pos-label/pos-label.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;EACzB,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,QAAQ,CAAC;MACtB,IAAI,EAAE,eAAe;KACtB,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;GAI/B,CAAC,CAAC;EACH,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;IAC3C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,QAAQ,CAAC;MACtB,IAAI,EAAE,eAAe;KACtB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;MACtC,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe;KAC7B,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;GAI/B,CAAC,CAAC;EACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { PosLabel } from './pos-label';\n\ndescribe('pos-label', () => {\n it('is empty initially', async () => {\n const page = await newSpecPage({\n components: [PosLabel],\n html: `<pos-label />`,\n });\n expect(page.root).toEqualHtml(`\n <pos-label>\n <mock:shadow-root></mock:shadow-root>\n </pos-label>\n `);\n });\n\n it('renders label from resource', async () => {\n const page = await newSpecPage({\n components: [PosLabel],\n html: `<pos-label />`,\n });\n await page.rootInstance.receiveResource({\n label: () => 'Test Resource',\n });\n await page.waitForChanges();\n expect(page.root).toEqualHtml(`\n <pos-label>\n <mock:shadow-root>Test Resource</mock:shadow-root>\n </pos-label>\n `);\n });\n});\n"]}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { fireEvent, getAllByText, getByText } from "@testing-library/dom";
|
|
3
|
-
import { PosLiterals } from "./pos-literals";
|
|
4
|
-
describe('pos-literals', () => {
|
|
5
|
-
it('are empty initially, but include option to add one', async () => {
|
|
6
|
-
const page = await newSpecPage({
|
|
7
|
-
components: [PosLiterals],
|
|
8
|
-
html: `<pos-literals />`,
|
|
9
|
-
});
|
|
10
|
-
expect(page.root).toEqualHtml(`
|
|
11
|
-
<pos-literals>
|
|
12
|
-
<mock:shadow-root>
|
|
13
|
-
<pos-add-literal-value />
|
|
14
|
-
</mock:shadow-root>
|
|
15
|
-
</pos-literals>
|
|
16
|
-
`);
|
|
17
|
-
});
|
|
18
|
-
it('renders single predicate and value', async () => {
|
|
19
|
-
const page = await newSpecPage({
|
|
20
|
-
components: [PosLiterals],
|
|
21
|
-
html: `<pos-literals />`,
|
|
22
|
-
});
|
|
23
|
-
await page.rootInstance.receiveResource({
|
|
24
|
-
literals: () => [
|
|
25
|
-
{
|
|
26
|
-
predicate: 'http://schema.org/name',
|
|
27
|
-
values: ['Alice'],
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
});
|
|
31
|
-
await page.waitForChanges();
|
|
32
|
-
const el = page.root.shadowRoot;
|
|
33
|
-
expect(getByText(el, 'Alice')).toBeDefined();
|
|
34
|
-
expect(getByText(el, 'http://schema.org/name')).toBeDefined();
|
|
35
|
-
});
|
|
36
|
-
it('renders multiple predicates and values', async () => {
|
|
37
|
-
const page = await newSpecPage({
|
|
38
|
-
components: [PosLiterals],
|
|
39
|
-
html: `<pos-literals />`,
|
|
40
|
-
});
|
|
41
|
-
await page.rootInstance.receiveResource({
|
|
42
|
-
literals: () => [
|
|
43
|
-
{
|
|
44
|
-
predicate: 'http://schema.org/name',
|
|
45
|
-
values: ['Alice', 'Bernadette'],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
predicate: 'http://schema.org/description',
|
|
49
|
-
values: ['the description'],
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
});
|
|
53
|
-
await page.waitForChanges();
|
|
54
|
-
const el = page.root.shadowRoot;
|
|
55
|
-
expect(getByText(el, 'Alice')).toBeDefined();
|
|
56
|
-
expect(getByText(el, 'Bernadette')).toBeDefined();
|
|
57
|
-
expect(getByText(el, 'http://schema.org/name')).toBeDefined();
|
|
58
|
-
expect(getByText(el, 'the description')).toBeDefined();
|
|
59
|
-
expect(getByText(el, 'http://schema.org/description')).toBeDefined();
|
|
60
|
-
});
|
|
61
|
-
it('adds newly added predicate to the list', async () => {
|
|
62
|
-
// given
|
|
63
|
-
const page = await newSpecPage({
|
|
64
|
-
components: [PosLiterals],
|
|
65
|
-
html: `<pos-literals />`,
|
|
66
|
-
supportsShadowDom: false,
|
|
67
|
-
});
|
|
68
|
-
await page.rootInstance.receiveResource({
|
|
69
|
-
literals: () => [],
|
|
70
|
-
});
|
|
71
|
-
await page.waitForChanges();
|
|
72
|
-
// when
|
|
73
|
-
const input = page.root.querySelector('pos-add-literal-value');
|
|
74
|
-
const literal = {
|
|
75
|
-
predicate: 'https://schema.org/name',
|
|
76
|
-
values: ['Alice'],
|
|
77
|
-
};
|
|
78
|
-
fireEvent(input, new CustomEvent('pod-os:added-literal-value', {
|
|
79
|
-
detail: literal,
|
|
80
|
-
}));
|
|
81
|
-
await page.waitForChanges();
|
|
82
|
-
// then
|
|
83
|
-
expect(getByText(page.root, 'Alice')).toBeDefined();
|
|
84
|
-
expect(getByText(page.root, 'https://schema.org/name')).toBeDefined();
|
|
85
|
-
});
|
|
86
|
-
it('adds newly added predicate value to the existing list without duplicating the predicate', async () => {
|
|
87
|
-
// given
|
|
88
|
-
const page = await newSpecPage({
|
|
89
|
-
components: [PosLiterals],
|
|
90
|
-
html: `<pos-literals />`,
|
|
91
|
-
supportsShadowDom: false,
|
|
92
|
-
});
|
|
93
|
-
await page.rootInstance.receiveResource({
|
|
94
|
-
literals: () => [
|
|
95
|
-
{
|
|
96
|
-
predicate: 'https://schema.org/name',
|
|
97
|
-
values: ['Alice'],
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
});
|
|
101
|
-
await page.waitForChanges();
|
|
102
|
-
// when
|
|
103
|
-
const input = page.root.querySelector('pos-add-literal-value');
|
|
104
|
-
const literal = {
|
|
105
|
-
predicate: 'https://schema.org/name',
|
|
106
|
-
values: ['Bernadette'],
|
|
107
|
-
};
|
|
108
|
-
fireEvent(input, new CustomEvent('pod-os:added-literal-value', {
|
|
109
|
-
detail: literal,
|
|
110
|
-
}));
|
|
111
|
-
await page.waitForChanges();
|
|
112
|
-
// then
|
|
113
|
-
expect(getByText(page.root, 'Alice')).toBeDefined();
|
|
114
|
-
expect(getByText(page.root, 'Bernadette')).toBeDefined();
|
|
115
|
-
expect(getAllByText(page.root, 'https://schema.org/name')).toHaveLength(1);
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
//# sourceMappingURL=pos-literals.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pos-literals.spec.js","sourceRoot":"","sources":["../../../../src/components/pos-literals/pos-literals.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\n\nimport { fireEvent, getAllByText, getByText } from '@testing-library/dom';\n\nimport { PosLiterals } from './pos-literals';\nimport { Literal } from '@pod-os/core';\n\ndescribe('pos-literals', () => {\n it('are empty initially, but include option to add one', async () => {\n const page = await newSpecPage({\n components: [PosLiterals],\n html: `<pos-literals />`,\n });\n expect(page.root).toEqualHtml(`\n <pos-literals>\n <mock:shadow-root>\n <pos-add-literal-value />\n </mock:shadow-root>\n </pos-literals>\n `);\n });\n\n it('renders single predicate and value', async () => {\n const page = await newSpecPage({\n components: [PosLiterals],\n html: `<pos-literals />`,\n });\n await page.rootInstance.receiveResource({\n literals: () => [\n {\n predicate: 'http://schema.org/name',\n values: ['Alice'],\n },\n ],\n });\n await page.waitForChanges();\n\n const el: HTMLElement = page.root.shadowRoot as unknown as HTMLElement;\n\n expect(getByText(el, 'Alice')).toBeDefined();\n expect(getByText(el, 'http://schema.org/name')).toBeDefined();\n });\n\n it('renders multiple predicates and values', async () => {\n const page = await newSpecPage({\n components: [PosLiterals],\n html: `<pos-literals />`,\n });\n await page.rootInstance.receiveResource({\n literals: () => [\n {\n predicate: 'http://schema.org/name',\n values: ['Alice', 'Bernadette'],\n },\n {\n predicate: 'http://schema.org/description',\n values: ['the description'],\n },\n ],\n });\n await page.waitForChanges();\n\n const el: HTMLElement = page.root.shadowRoot as unknown as HTMLElement;\n\n expect(getByText(el, 'Alice')).toBeDefined();\n expect(getByText(el, 'Bernadette')).toBeDefined();\n expect(getByText(el, 'http://schema.org/name')).toBeDefined();\n\n expect(getByText(el, 'the description')).toBeDefined();\n expect(getByText(el, 'http://schema.org/description')).toBeDefined();\n });\n\n it('adds newly added predicate to the list', async () => {\n // given\n const page = await newSpecPage({\n components: [PosLiterals],\n html: `<pos-literals />`,\n supportsShadowDom: false,\n });\n await page.rootInstance.receiveResource({\n literals: () => [],\n });\n await page.waitForChanges();\n\n // when\n const input = page.root.querySelector('pos-add-literal-value');\n const literal: Literal = {\n predicate: 'https://schema.org/name',\n values: ['Alice'],\n };\n fireEvent(\n input,\n new CustomEvent('pod-os:added-literal-value', {\n detail: literal,\n }),\n );\n\n await page.waitForChanges();\n\n // then\n expect(getByText(page.root, 'Alice')).toBeDefined();\n expect(getByText(page.root, 'https://schema.org/name')).toBeDefined();\n });\n\n it('adds newly added predicate value to the existing list without duplicating the predicate', async () => {\n // given\n const page = await newSpecPage({\n components: [PosLiterals],\n html: `<pos-literals />`,\n supportsShadowDom: false,\n });\n await page.rootInstance.receiveResource({\n literals: () => [\n {\n predicate: 'https://schema.org/name',\n values: ['Alice'],\n },\n ],\n });\n await page.waitForChanges();\n\n // when\n const input = page.root.querySelector('pos-add-literal-value');\n const literal: Literal = {\n predicate: 'https://schema.org/name',\n values: ['Bernadette'],\n };\n fireEvent(\n input,\n new CustomEvent('pod-os:added-literal-value', {\n detail: literal,\n }),\n );\n\n await page.waitForChanges();\n\n // then\n expect(getByText(page.root, 'Alice')).toBeDefined();\n expect(getByText(page.root, 'Bernadette')).toBeDefined();\n expect(getAllByText(page.root, 'https://schema.org/name')).toHaveLength(1);\n });\n});\n"]}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { mockPodOS } from "../../test/mockPodOS";
|
|
2
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
3
|
-
import { PosApp } from "../pos-app/pos-app";
|
|
4
|
-
import { PosLabel } from "../pos-label/pos-label";
|
|
5
|
-
import { PosPicture } from "../pos-picture/pos-picture";
|
|
6
|
-
import { PosResource } from "../pos-resource/pos-resource";
|
|
7
|
-
import { PosLogin } from "./pos-login";
|
|
8
|
-
describe('pos-login', () => {
|
|
9
|
-
it('allows Alice to log in', async () => {
|
|
10
|
-
mockPodOS();
|
|
11
|
-
// given a page with login and session tracking
|
|
12
|
-
const page = await newSpecPage({
|
|
13
|
-
supportsShadowDom: false,
|
|
14
|
-
components: [PosApp, PosLogin, PosLabel, PosResource, PosPicture],
|
|
15
|
-
html: `<pos-app><pos-login></pos-login></pos-app>`,
|
|
16
|
-
});
|
|
17
|
-
// when alice logs in
|
|
18
|
-
const login = page.root.querySelector('pos-login');
|
|
19
|
-
const button = login.querySelector('ion-button');
|
|
20
|
-
expect(button.innerText).toEqual('Login');
|
|
21
|
-
await button.click();
|
|
22
|
-
await page.waitForChanges();
|
|
23
|
-
// then her WebID shows up
|
|
24
|
-
const label = login.querySelector('pos-resource pos-label');
|
|
25
|
-
expect(label).toEqualText('Alice');
|
|
26
|
-
// then her picture shows up
|
|
27
|
-
const image = login.querySelector('pos-resource pos-image');
|
|
28
|
-
expect(image).toEqualHtml(`
|
|
29
|
-
<pos-image alt="Alice" src="https://pod.example/alice/me.jpg"></pos-image>
|
|
30
|
-
`);
|
|
31
|
-
// the button becomes a logout button
|
|
32
|
-
expect(button.innerText).toEqual('Logout');
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
//# sourceMappingURL=pos-login.integration.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pos-login.integration.spec.js","sourceRoot":"","sources":["../../../../src/components/pos-login/pos-login.integration.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;EACzB,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;IACtC,SAAS,EAAE,CAAC;IACZ,+CAA+C;IAC/C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,iBAAiB,EAAE,KAAK;MACxB,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC;MACjE,IAAI,EAAE,4CAA4C;KACnD,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,0BAA0B;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEnC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;;KAEzB,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;EAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { mockPodOS } from '../../test/mockPodOS';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { PosApp } from '../pos-app/pos-app';\nimport { PosLabel } from '../pos-label/pos-label';\nimport { PosPicture } from '../pos-picture/pos-picture';\nimport { PosResource } from '../pos-resource/pos-resource';\nimport { PosLogin } from './pos-login';\n\ndescribe('pos-login', () => {\n it('allows Alice to log in', async () => {\n mockPodOS();\n // given a page with login and session tracking\n const page = await newSpecPage({\n supportsShadowDom: false,\n components: [PosApp, PosLogin, PosLabel, PosResource, PosPicture],\n html: `<pos-app><pos-login></pos-login></pos-app>`,\n });\n\n // when alice logs in\n const login = page.root.querySelector('pos-login');\n const button = login.querySelector('ion-button');\n expect(button.innerText).toEqual('Login');\n await button.click();\n await page.waitForChanges();\n\n // then her WebID shows up\n const label = login.querySelector('pos-resource pos-label');\n expect(label).toEqualText('Alice');\n\n // then her picture shows up\n const image = login.querySelector('pos-resource pos-image');\n expect(image).toEqualHtml(`\n <pos-image alt=\"Alice\" src=\"https://pod.example/alice/me.jpg\"></pos-image>\n `);\n\n // the button becomes a logout button\n expect(button.innerText).toEqual('Logout');\n });\n});\n"]}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
jest.mock('../../store/session');
|
|
2
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
3
|
-
import { PosLogin } from "./pos-login";
|
|
4
|
-
import session from "../../store/session";
|
|
5
|
-
describe('pos-login', () => {
|
|
6
|
-
it('renders login button', async () => {
|
|
7
|
-
session.state.isLoggedIn = false;
|
|
8
|
-
const page = await newSpecPage({
|
|
9
|
-
components: [PosLogin],
|
|
10
|
-
html: `<pos-login></pos-login>`,
|
|
11
|
-
});
|
|
12
|
-
expect(page.root).toEqualHtml(`
|
|
13
|
-
<pos-login>
|
|
14
|
-
<mock:shadow-root>
|
|
15
|
-
<ion-button>
|
|
16
|
-
Login
|
|
17
|
-
</ion-button>
|
|
18
|
-
</mock:shadow-root>
|
|
19
|
-
</pos-login>
|
|
20
|
-
`);
|
|
21
|
-
});
|
|
22
|
-
it('renders logout button, label and picture for webId', async () => {
|
|
23
|
-
session.state.isLoggedIn = true;
|
|
24
|
-
session.state.webId = 'https://pod.example/alice#me';
|
|
25
|
-
const page = await newSpecPage({
|
|
26
|
-
components: [PosLogin],
|
|
27
|
-
html: `<pos-login></pos-login>`,
|
|
28
|
-
});
|
|
29
|
-
expect(page.root).toEqualHtml(`
|
|
30
|
-
<pos-login>
|
|
31
|
-
<mock:shadow-root>
|
|
32
|
-
<pos-resource uri="https://pod.example/alice#me">
|
|
33
|
-
<span class="user-data">
|
|
34
|
-
<pos-picture></pos-picture>
|
|
35
|
-
<pos-label></pos-label>
|
|
36
|
-
</span>
|
|
37
|
-
</pos-resource>
|
|
38
|
-
<ion-button>
|
|
39
|
-
Logout
|
|
40
|
-
</ion-button>
|
|
41
|
-
</mock:shadow-root>
|
|
42
|
-
</pos-login>
|
|
43
|
-
`);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=pos-login.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pos-login.spec.js","sourceRoot":"","sources":["../../../../src/components/pos-login/pos-login.spec.tsx"],"names":[],"mappings":"AAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAE1C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;EACzB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,QAAQ,CAAC;MACtB,IAAI,EAAE,yBAAyB;KAChC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;GAQ/B,CAAC,CAAC;EACH,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IAClE,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,8BAA8B,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,QAAQ,CAAC;MACtB,IAAI,EAAE,yBAAyB;KAChC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;;;;;;;;GAc/B,CAAC,CAAC;EACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["jest.mock('../../store/session');\n\nimport { newSpecPage } from '@stencil/core/testing';\nimport { PosLogin } from './pos-login';\n\nimport session from '../../store/session';\n\ndescribe('pos-login', () => {\n it('renders login button', async () => {\n session.state.isLoggedIn = false;\n const page = await newSpecPage({\n components: [PosLogin],\n html: `<pos-login></pos-login>`,\n });\n expect(page.root).toEqualHtml(`\n <pos-login>\n <mock:shadow-root>\n <ion-button>\n Login\n </ion-button>\n </mock:shadow-root>\n </pos-login>\n `);\n });\n\n it('renders logout button, label and picture for webId', async () => {\n session.state.isLoggedIn = true;\n session.state.webId = 'https://pod.example/alice#me';\n const page = await newSpecPage({\n components: [PosLogin],\n html: `<pos-login></pos-login>`,\n });\n expect(page.root).toEqualHtml(`\n <pos-login>\n <mock:shadow-root>\n <pos-resource uri=\"https://pod.example/alice#me\">\n <span class=\"user-data\">\n <pos-picture></pos-picture>\n <pos-label></pos-label>\n </span>\n </pos-resource>\n <ion-button>\n Logout\n </ion-button>\n </mock:shadow-root>\n </pos-login>\n `);\n });\n});\n"]}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { newSpecPage } from "@stencil/core/testing";
|
|
2
|
-
import { fireEvent } from "@testing-library/dom";
|
|
3
|
-
import { PosNavigationBar } from "./pos-navigation-bar";
|
|
4
|
-
describe('pos-navigation-bar', () => {
|
|
5
|
-
it('renders a search bar within a form', async () => {
|
|
6
|
-
const page = await newSpecPage({
|
|
7
|
-
components: [PosNavigationBar],
|
|
8
|
-
html: `<pos-navigation-bar uri="https://pod.example/resource" />`,
|
|
9
|
-
});
|
|
10
|
-
expect(page.root).toEqualHtml(`
|
|
11
|
-
<pos-navigation-bar uri="https://pod.example/resource">
|
|
12
|
-
<mock:shadow-root>
|
|
13
|
-
<form>
|
|
14
|
-
<ion-searchbar debounce="0" enterkeyhint="search" placeholder="Enter URI" value="https://pod.example/resource"></ion-searchbar>
|
|
15
|
-
</form>
|
|
16
|
-
</mock:shadow-root>
|
|
17
|
-
</pos-navigation-bar>`);
|
|
18
|
-
});
|
|
19
|
-
it('navigates to entered URI when form is submitted', async () => {
|
|
20
|
-
// given a page with a navigation bar
|
|
21
|
-
const page = await newSpecPage({
|
|
22
|
-
supportsShadowDom: false,
|
|
23
|
-
components: [PosNavigationBar],
|
|
24
|
-
html: `<pos-navigation-bar uri="https://pod.example/resource" />`,
|
|
25
|
-
});
|
|
26
|
-
// and the page listens for pod-os:link events
|
|
27
|
-
const linkEventListener = jest.fn();
|
|
28
|
-
page.root.addEventListener('pod-os:link', linkEventListener);
|
|
29
|
-
// when the user enters a URI into the searchbar
|
|
30
|
-
const searchBar = page.root.querySelector('ion-searchbar');
|
|
31
|
-
fireEvent(searchBar, new CustomEvent('ionChange', { detail: { value: 'https://resource.test/' } }));
|
|
32
|
-
// and then submits the form
|
|
33
|
-
const form = page.root.querySelector('form');
|
|
34
|
-
fireEvent(form, new CustomEvent('submit', {}));
|
|
35
|
-
// then a pod-os:link event with this URI is received in the listener
|
|
36
|
-
expect(linkEventListener).toHaveBeenCalledWith(expect.objectContaining({
|
|
37
|
-
detail: 'https://resource.test/',
|
|
38
|
-
}));
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
//# sourceMappingURL=pos-navigation-bar.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pos-navigation-bar.spec.js","sourceRoot":"","sources":["../../../../src/components/pos-navigation-bar/pos-navigation-bar.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;EAClC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;IAClD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,gBAAgB,CAAC;MAC9B,IAAI,EAAE,2DAA2D;KAClE,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;;;;;;0BAOR,CAAC,CAAC;EAC1B,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IAC/D,qCAAqC;IACrC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,iBAAiB,EAAE,KAAK;MACxB,UAAU,EAAE,CAAC,gBAAgB,CAAC;MAC9B,IAAI,EAAE,2DAA2D;KAClE,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAE7D,gDAAgD;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,CAAC,SAAS,EAAE,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC;IAEpG,4BAA4B;IAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAS,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAE/C,qEAAqE;IACrE,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAC5C,MAAM,CAAC,gBAAgB,CAAC;MACtB,MAAM,EAAE,wBAAwB;KACjC,CAAC,CACH,CAAC;EACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from '@stencil/core/testing';\nimport { fireEvent } from '@testing-library/dom';\nimport { PosNavigationBar } from './pos-navigation-bar';\n\ndescribe('pos-navigation-bar', () => {\n it('renders a search bar within a form', async () => {\n const page = await newSpecPage({\n components: [PosNavigationBar],\n html: `<pos-navigation-bar uri=\"https://pod.example/resource\" />`,\n });\n expect(page.root).toEqualHtml(`\n <pos-navigation-bar uri=\"https://pod.example/resource\">\n <mock:shadow-root>\n <form>\n <ion-searchbar debounce=\"0\" enterkeyhint=\"search\" placeholder=\"Enter URI\" value=\"https://pod.example/resource\"></ion-searchbar>\n </form>\n </mock:shadow-root>\n </pos-navigation-bar>`);\n });\n\n it('navigates to entered URI when form is submitted', async () => {\n // given a page with a navigation bar\n const page = await newSpecPage({\n supportsShadowDom: false,\n components: [PosNavigationBar],\n html: `<pos-navigation-bar uri=\"https://pod.example/resource\" />`,\n });\n\n // and the page listens for pod-os:link events\n const linkEventListener = jest.fn();\n page.root.addEventListener('pod-os:link', linkEventListener);\n\n // when the user enters a URI into the searchbar\n const searchBar = page.root.querySelector('ion-searchbar');\n fireEvent(searchBar, new CustomEvent('ionChange', { detail: { value: 'https://resource.test/' } }));\n\n // and then submits the form\n const form = page.root.querySelector('form');\n fireEvent(form, new CustomEvent('submit', {}));\n\n // then a pod-os:link event with this URI is received in the listener\n expect(linkEventListener).toHaveBeenCalledWith(\n expect.objectContaining({\n detail: 'https://resource.test/',\n }),\n );\n });\n});\n"]}
|