@internetarchive/collection-browser 0.2.22 → 0.3.0-alpha.2
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/.editorconfig +29 -29
- package/.github/workflows/ci.yml +26 -26
- package/.github/workflows/gh-pages-main.yml +39 -39
- package/.github/workflows/npm-publish.yml +39 -39
- package/.github/workflows/pr-preview.yml +38 -38
- package/.husky/pre-commit +4 -4
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/index.d.ts +9 -9
- package/dist/index.js +9 -9
- package/dist/src/app-root.d.ts +42 -39
- package/dist/src/app-root.js +236 -203
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-left.js +2 -2
- package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-right.js +2 -2
- package/dist/src/assets/img/icons/chevron.d.ts +2 -2
- package/dist/src/assets/img/icons/chevron.js +2 -2
- package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
- package/dist/src/assets/img/icons/empty-query.js +2 -2
- package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
- package/dist/src/assets/img/icons/eye-closed.js +2 -2
- package/dist/src/assets/img/icons/eye.d.ts +2 -2
- package/dist/src/assets/img/icons/eye.js +2 -2
- package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-filled.js +2 -2
- package/dist/src/assets/img/icons/login-required.d.ts +1 -1
- package/dist/src/assets/img/icons/login-required.js +2 -2
- package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/account.js +2 -2
- package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
- package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/data.js +2 -2
- package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
- package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/film.js +2 -2
- package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/images.js +2 -2
- package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/software.js +2 -2
- package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
- package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
- package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/video.js +2 -2
- package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/web.js +2 -2
- package/dist/src/assets/img/icons/null-result.d.ts +2 -2
- package/dist/src/assets/img/icons/null-result.js +2 -2
- package/dist/src/assets/img/icons/restricted.d.ts +1 -1
- package/dist/src/assets/img/icons/restricted.js +2 -2
- package/dist/src/assets/img/icons/reviews.d.ts +1 -1
- package/dist/src/assets/img/icons/reviews.js +2 -2
- package/dist/src/assets/img/icons/upload.d.ts +1 -1
- package/dist/src/assets/img/icons/upload.js +2 -2
- package/dist/src/assets/img/icons/views.d.ts +1 -1
- package/dist/src/assets/img/icons/views.js +2 -2
- package/dist/src/circular-activity-indicator.d.ts +5 -5
- package/dist/src/circular-activity-indicator.js +17 -17
- package/dist/src/collection-browser.d.ts +235 -233
- package/dist/src/collection-browser.js +1032 -1046
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facets-template.d.ts +16 -16
- package/dist/src/collection-facets/facets-template.js +125 -125
- package/dist/src/collection-facets/facets-util.d.ts +10 -10
- package/dist/src/collection-facets/facets-util.js +19 -19
- package/dist/src/collection-facets/more-facets-content.d.ts +84 -83
- package/dist/src/collection-facets/more-facets-content.js +353 -351
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +192 -192
- package/dist/src/collection-facets.d.ts +71 -79
- package/dist/src/collection-facets.js +325 -338
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/empty-placeholder.d.ts +11 -11
- package/dist/src/empty-placeholder.js +42 -42
- package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
- package/dist/src/language-code-handler/language-code-handler.js +26 -26
- package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +562 -562
- package/dist/src/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +85 -85
- package/dist/src/models.d.ts +90 -89
- package/dist/src/models.js +85 -85
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +38 -38
- package/dist/src/restoration-state-handler.js +202 -202
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +9 -9
- package/dist/src/sort-filter-bar/alpha-bar.js +41 -41
- package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/compact.js +2 -2
- package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/list.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
- package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/tile.js +2 -2
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +107 -107
- package/dist/src/sort-filter-bar/sort-filter-bar.js +423 -423
- package/dist/src/styles/item-image-styles.d.ts +8 -8
- package/dist/src/styles/item-image-styles.js +9 -9
- package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
- package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
- package/dist/src/tiles/grid/account-tile.d.ts +8 -8
- package/dist/src/tiles/grid/account-tile.js +20 -20
- package/dist/src/tiles/grid/collection-tile.d.ts +7 -7
- package/dist/src/tiles/grid/collection-tile.js +23 -23
- package/dist/src/tiles/grid/item-tile.d.ts +24 -24
- package/dist/src/tiles/grid/item-tile.js +87 -87
- package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
- package/dist/src/tiles/grid/tile-stats.js +35 -35
- package/dist/src/tiles/image-block.d.ts +17 -17
- package/dist/src/tiles/image-block.js +73 -73
- package/dist/src/tiles/item-image.d.ts +31 -31
- package/dist/src/tiles/item-image.js +103 -103
- package/dist/src/tiles/list/account-label.d.ts +1 -1
- package/dist/src/tiles/list/account-label.js +6 -6
- package/dist/src/tiles/list/date-label.d.ts +1 -1
- package/dist/src/tiles/list/date-label.js +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
- package/dist/src/tiles/list/tile-list-compact.d.ts +20 -20
- package/dist/src/tiles/list/tile-list-compact.js +87 -87
- package/dist/src/tiles/list/tile-list.d.ts +50 -50
- package/dist/src/tiles/list/tile-list.js +263 -263
- package/dist/src/tiles/mediatype-icon.d.ts +9 -9
- package/dist/src/tiles/mediatype-icon.js +47 -47
- package/dist/src/tiles/overlay/icon-overlay.d.ts +7 -7
- package/dist/src/tiles/overlay/icon-overlay.js +31 -31
- package/dist/src/tiles/overlay/text-overlay.d.ts +8 -8
- package/dist/src/tiles/overlay/text-overlay.js +31 -31
- package/dist/src/tiles/text-snippet-block.d.ts +29 -29
- package/dist/src/tiles/text-snippet-block.js +81 -81
- package/dist/src/tiles/text-snippet-block.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.d.ts +36 -36
- package/dist/src/tiles/tile-dispatcher.js +128 -128
- package/dist/src/utils/analytics-events.d.ts +18 -18
- package/dist/src/utils/analytics-events.js +20 -20
- package/dist/src/utils/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +75 -75
- package/dist/src/utils/format-date.d.ts +2 -2
- package/dist/src/utils/format-date.js +23 -23
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +328 -200
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +62 -62
- package/dist/test/collection-facets/facets-util.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-util.test.js +12 -12
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +92 -91
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +182 -181
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +33 -33
- package/dist/test/icon-overlay.test.d.ts +1 -1
- package/dist/test/icon-overlay.test.js +24 -24
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +56 -56
- package/dist/test/mediatype-config.test.d.ts +1 -1
- package/dist/test/mediatype-config.test.js +16 -16
- package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
- package/dist/test/mocks/mock-analytics-handler.js +15 -15
- package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
- package/dist/test/mocks/mock-collection-name-cache.js +13 -13
- package/dist/test/mocks/mock-search-responses.d.ts +5 -4
- package/dist/test/mocks/mock-search-responses.js +103 -57
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/mocks/mock-search-service.d.ts +13 -8
- package/dist/test/mocks/mock-search-service.js +25 -19
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +113 -113
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +41 -41
- package/dist/test/text-snippet-block.test.d.ts +1 -1
- package/dist/test/text-snippet-block.test.js +57 -45
- package/dist/test/text-snippet-block.test.js.map +1 -1
- package/dist/test/tile-stats.test.d.ts +1 -1
- package/dist/test/tile-stats.test.js +33 -33
- package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +107 -107
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +36 -36
- package/dist/test/utils/format-count.test.d.ts +1 -1
- package/dist/test/utils/format-count.test.js +23 -23
- package/dist/test/utils/format-date.test.d.ts +1 -1
- package/dist/test/utils/format-date.test.js +17 -17
- package/index.html +24 -24
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +115 -115
- package/renovate.json +6 -6
- package/src/app-root.ts +49 -11
- package/src/collection-browser.ts +76 -86
- package/src/collection-facets/more-facets-content.ts +35 -27
- package/src/collection-facets.ts +9 -26
- package/src/models.ts +2 -0
- package/src/tiles/text-snippet-block.ts +1 -1
- package/test/collection-browser.test.ts +192 -0
- package/test/collection-facets/more-facets-content.test.ts +5 -5
- package/test/collection-facets.test.ts +16 -15
- package/test/mocks/mock-search-responses.ts +83 -34
- package/test/mocks/mock-search-service.ts +27 -17
- package/test/text-snippet-block.test.ts +17 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,58 +1,104 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const mockSuccessSingleResult = {
|
|
3
|
-
success: {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
1
|
+
import { ItemHit, } from '@internetarchive/search-service';
|
|
2
|
+
export const mockSuccessSingleResult = {
|
|
3
|
+
success: {
|
|
4
|
+
request: {
|
|
5
|
+
clientParameters: {
|
|
6
|
+
user_query: 'collection:foo',
|
|
7
|
+
sort: [],
|
|
8
|
+
},
|
|
9
|
+
finalizedParameters: {
|
|
10
|
+
user_query: 'collection:foo',
|
|
11
|
+
sort: [],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
rawResponse: {},
|
|
15
|
+
response: {
|
|
16
|
+
totalResults: 1,
|
|
17
|
+
returnedCount: 1,
|
|
18
|
+
results: [
|
|
19
|
+
new ItemHit({
|
|
20
|
+
fields: {
|
|
21
|
+
identifier: 'foo',
|
|
22
|
+
collection: ['foo', 'bar'],
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
responseHeader: {
|
|
28
|
+
succeeded: true,
|
|
29
|
+
query_time: 0,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
export const getMockSuccessSingleResultWithSort = (resultsSpy) => ({
|
|
34
|
+
success: {
|
|
35
|
+
request: {
|
|
36
|
+
clientParameters: {
|
|
37
|
+
user_query: 'with-sort',
|
|
38
|
+
sort: ['foo:asc'],
|
|
39
|
+
},
|
|
40
|
+
finalizedParameters: {
|
|
41
|
+
user_query: 'with-sort',
|
|
42
|
+
sort: ['foo:asc'],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
rawResponse: {},
|
|
46
|
+
response: {
|
|
47
|
+
totalResults: 1,
|
|
48
|
+
returnedCount: 1,
|
|
49
|
+
get results() {
|
|
50
|
+
resultsSpy();
|
|
51
|
+
return [
|
|
52
|
+
new ItemHit({
|
|
53
|
+
fields: {
|
|
54
|
+
identifier: 'foo',
|
|
55
|
+
collection: ['foo', 'bar'],
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
];
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
responseHeader: {
|
|
62
|
+
succeeded: true,
|
|
63
|
+
query_time: 0,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
export const mockSuccessMultipleResults = {
|
|
68
|
+
success: {
|
|
69
|
+
request: {
|
|
70
|
+
clientParameters: {
|
|
71
|
+
user_query: 'collection:foo',
|
|
72
|
+
sort: [],
|
|
73
|
+
},
|
|
74
|
+
finalizedParameters: {
|
|
75
|
+
user_query: 'collection:foo',
|
|
76
|
+
sort: [],
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
rawResponse: {},
|
|
80
|
+
response: {
|
|
81
|
+
totalResults: 2,
|
|
82
|
+
returnedCount: 2,
|
|
83
|
+
results: [
|
|
84
|
+
new ItemHit({
|
|
85
|
+
fields: {
|
|
86
|
+
identifier: 'foo',
|
|
87
|
+
collection: ['foo', 'bar'],
|
|
88
|
+
},
|
|
89
|
+
}),
|
|
90
|
+
new ItemHit({
|
|
91
|
+
fields: {
|
|
92
|
+
identifier: 'bar',
|
|
93
|
+
collection: ['baz', 'boop'],
|
|
94
|
+
},
|
|
95
|
+
}),
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
responseHeader: {
|
|
99
|
+
succeeded: true,
|
|
100
|
+
query_time: 0,
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
58
104
|
//# sourceMappingURL=mock-search-responses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,GAGR,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,uBAAuB,GAGhC;IACF,OAAO,EAAE;QACP,OAAO,EAAE;YACP,gBAAgB,EAAE;gBAChB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE;gBACP,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;qBAC3B;iBACF,CAAC;aACH;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAEG,CAAC,UAAoB,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,EAAE;QACP,OAAO,EAAE;YACP,gBAAgB,EAAE;gBAChB,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE,CAAC,SAAS,CAAC;aAClB;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,IAAI,OAAO;gBACT,UAAU,EAAE,CAAC;gBACb,OAAO;oBACL,IAAI,OAAO,CAAC;wBACV,MAAM,EAAE;4BACN,UAAU,EAAE,KAAK;4BACjB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;yBAC3B;qBACF,CAAC;iBACH,CAAC;YACJ,CAAC;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,OAAO,EAAE;QACP,OAAO,EAAE;YACP,gBAAgB,EAAE;gBAChB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE,EAAE;aACT;SACF;QACD,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE;gBACP,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;qBAC3B;iBACF,CAAC;gBACF,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;qBAC5B;iBACF,CAAC;aACH;SACF;QACD,cAAc,EAAE;YACd,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport {\n ItemHit,\n SearchResponse,\n SearchServiceError,\n} from '@internetarchive/search-service';\n\nexport const mockSuccessSingleResult: Result<\n SearchResponse,\n SearchServiceError\n> = {\n success: {\n request: {\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n finalizedParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n rawResponse: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n};\n\nexport const getMockSuccessSingleResultWithSort: (\n resultsSpy: Function\n) => Result<SearchResponse, SearchServiceError> = (resultsSpy: Function) => ({\n success: {\n request: {\n clientParameters: {\n user_query: 'with-sort',\n sort: ['foo:asc'],\n },\n finalizedParameters: {\n user_query: 'with-sort',\n sort: ['foo:asc'],\n },\n },\n rawResponse: {},\n response: {\n totalResults: 1,\n returnedCount: 1,\n get results() {\n resultsSpy();\n return [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n ];\n },\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n});\n\nexport const mockSuccessMultipleResults: Result<\n SearchResponse,\n SearchServiceError\n> = {\n success: {\n request: {\n clientParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n finalizedParameters: {\n user_query: 'collection:foo',\n sort: [],\n },\n },\n rawResponse: {},\n response: {\n totalResults: 2,\n returnedCount: 2,\n results: [\n new ItemHit({\n fields: {\n identifier: 'foo',\n collection: ['foo', 'bar'],\n },\n }),\n new ItemHit({\n fields: {\n identifier: 'bar',\n collection: ['baz', 'boop'],\n },\n }),\n ],\n },\n responseHeader: {\n succeeded: true,\n query_time: 0,\n },\n },\n};\n"]}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import type { Result } from '@internetarchive/result-type';
|
|
2
|
-
import type {
|
|
3
|
-
export declare class MockSearchService implements SearchServiceInterface {
|
|
4
|
-
searchParams?: SearchParams;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
1
|
+
import type { Result } from '@internetarchive/result-type';
|
|
2
|
+
import type { SearchParams, SearchResponse, SearchServiceInterface, SearchServiceError, SearchType } from '@internetarchive/search-service';
|
|
3
|
+
export declare class MockSearchService implements SearchServiceInterface {
|
|
4
|
+
searchParams?: SearchParams;
|
|
5
|
+
searchType?: SearchType;
|
|
6
|
+
asyncResponse: boolean;
|
|
7
|
+
resultsSpy: Function;
|
|
8
|
+
constructor({ asyncResponse, resultsSpy }?: {
|
|
9
|
+
asyncResponse?: boolean | undefined;
|
|
10
|
+
resultsSpy?: (() => void) | undefined;
|
|
11
|
+
});
|
|
12
|
+
search(params: SearchParams, searchType: SearchType): Promise<Result<SearchResponse, SearchServiceError>>;
|
|
13
|
+
}
|
|
@@ -1,20 +1,26 @@
|
|
|
1
|
-
import { mockSuccessSingleResult, mockSuccessMultipleResults, } from './mock-search-responses';
|
|
2
|
-
export class MockSearchService {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
this.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
1
|
+
import { mockSuccessSingleResult, mockSuccessMultipleResults, getMockSuccessSingleResultWithSort, } from './mock-search-responses';
|
|
2
|
+
export class MockSearchService {
|
|
3
|
+
constructor({ asyncResponse = false, resultsSpy = () => { } } = {}) {
|
|
4
|
+
this.asyncResponse = asyncResponse;
|
|
5
|
+
this.resultsSpy = resultsSpy;
|
|
6
|
+
}
|
|
7
|
+
async search(params, searchType) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
this.searchParams = params;
|
|
10
|
+
this.searchType = searchType;
|
|
11
|
+
if (this.asyncResponse) {
|
|
12
|
+
// Add an artificial 1-tick delay
|
|
13
|
+
await new Promise(res => {
|
|
14
|
+
setTimeout(res, 0);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
if (((_a = this.searchParams) === null || _a === void 0 ? void 0 : _a.query) === 'single-result') {
|
|
18
|
+
return mockSuccessSingleResult;
|
|
19
|
+
}
|
|
20
|
+
if (((_b = this.searchParams) === null || _b === void 0 ? void 0 : _b.query) === 'with-sort') {
|
|
21
|
+
return getMockSuccessSingleResultWithSort(this.resultsSpy);
|
|
22
|
+
}
|
|
23
|
+
return mockSuccessMultipleResults;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
20
26
|
//# sourceMappingURL=mock-search-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-search-service.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-service.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"mock-search-service.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-service.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,yBAAyB,CAAC;AAEjC,MAAM,OAAO,iBAAiB;IAS5B,YAAY,EAAE,aAAa,GAAG,KAAK,EAAE,UAAU,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAoB,EACpB,UAAsB;;QAEtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,iCAAiC;YACjC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,MAAK,eAAe,EAAE;YAChD,OAAO,uBAAuB,CAAC;SAChC;QAED,IAAI,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,MAAK,WAAW,EAAE;YAC5C,OAAO,kCAAkC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5D;QAED,OAAO,0BAA0B,CAAC;IACpC,CAAC;CACF","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport type {\n SearchParams,\n SearchResponse,\n SearchServiceInterface,\n SearchServiceError,\n SearchType,\n} from '@internetarchive/search-service';\nimport {\n mockSuccessSingleResult,\n mockSuccessMultipleResults,\n getMockSuccessSingleResultWithSort,\n} from './mock-search-responses';\n\nexport class MockSearchService implements SearchServiceInterface {\n searchParams?: SearchParams;\n\n searchType?: SearchType;\n\n asyncResponse: boolean;\n\n resultsSpy: Function;\n\n constructor({ asyncResponse = false, resultsSpy = () => {} } = {}) {\n this.asyncResponse = asyncResponse;\n this.resultsSpy = resultsSpy;\n }\n\n async search(\n params: SearchParams,\n searchType: SearchType\n ): Promise<Result<SearchResponse, SearchServiceError>> {\n this.searchParams = params;\n this.searchType = searchType;\n\n if (this.asyncResponse) {\n // Add an artificial 1-tick delay\n await new Promise(res => {\n setTimeout(res, 0);\n });\n }\n\n if (this.searchParams?.query === 'single-result') {\n return mockSuccessSingleResult;\n }\n\n if (this.searchParams?.query === 'with-sort') {\n return getMockSuccessSingleResultWithSort(this.resultsSpy);\n }\n\n return mockSuccessMultipleResults;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../../src/sort-filter-bar/sort-filter-bar';
|
|
1
|
+
import '../../src/sort-filter-bar/sort-filter-bar';
|
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../../src/sort-filter-bar/sort-filter-bar';
|
|
5
|
-
describe('Sort direction buttons', () => {
|
|
6
|
-
it('should render sort direction button', async () => {
|
|
7
|
-
var _a;
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../../src/sort-filter-bar/sort-filter-bar';
|
|
5
|
+
describe('Sort direction buttons', () => {
|
|
6
|
+
it('should render sort direction button', async () => {
|
|
7
|
+
var _a;
|
|
8
8
|
const el = await fixture(html `
|
|
9
9
|
<sort-filter-bar> </sort-filter-bar>
|
|
10
|
-
`);
|
|
11
|
-
el.sortDirection = 'asc'; // selected sort
|
|
12
|
-
await el.updateComplete;
|
|
13
|
-
const sortDirectionButtonList = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-direction-selector');
|
|
14
|
-
const sortByAscButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-ascending-btn');
|
|
15
|
-
expect(sortByAscButton).to.exist;
|
|
16
|
-
// ascending order button is selected
|
|
17
|
-
expect(sortByAscButton === null || sortByAscButton === void 0 ? void 0 : sortByAscButton.getAttribute('class')).to.equal('sort-button selected');
|
|
18
|
-
const sortByDescButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-descending-btn');
|
|
19
|
-
expect(sortByDescButton).to.exist;
|
|
20
|
-
// descending order button is not selected
|
|
21
|
-
expect(sortByDescButton === null || sortByDescButton === void 0 ? void 0 : sortByDescButton.getAttribute('class')).to.not.equal('sort-button selected');
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
describe('Sort selector default buttons', async () => {
|
|
25
|
-
var _a;
|
|
10
|
+
`);
|
|
11
|
+
el.sortDirection = 'asc'; // selected sort
|
|
12
|
+
await el.updateComplete;
|
|
13
|
+
const sortDirectionButtonList = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-direction-selector');
|
|
14
|
+
const sortByAscButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-ascending-btn');
|
|
15
|
+
expect(sortByAscButton).to.exist;
|
|
16
|
+
// ascending order button is selected
|
|
17
|
+
expect(sortByAscButton === null || sortByAscButton === void 0 ? void 0 : sortByAscButton.getAttribute('class')).to.equal('sort-button selected');
|
|
18
|
+
const sortByDescButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-descending-btn');
|
|
19
|
+
expect(sortByDescButton).to.exist;
|
|
20
|
+
// descending order button is not selected
|
|
21
|
+
expect(sortByDescButton === null || sortByDescButton === void 0 ? void 0 : sortByDescButton.getAttribute('class')).to.not.equal('sort-button selected');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('Sort selector default buttons', async () => {
|
|
25
|
+
var _a;
|
|
26
26
|
const el = await fixture(html `
|
|
27
27
|
<sort-filter-bar> </sort-filter-bar>
|
|
28
|
-
`);
|
|
29
|
-
const sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#desktop-sort-selector');
|
|
30
|
-
it('should render sort-by label', async () => {
|
|
31
|
-
var _a;
|
|
32
|
-
expect((_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(0)) === null || _a === void 0 ? void 0 : _a.textContent).to.equal('Sort By');
|
|
33
|
-
});
|
|
34
|
-
it('should render default relevance-sort selector', async () => {
|
|
35
|
-
var _a;
|
|
36
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
37
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Relevance');
|
|
38
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.getAttribute('class')).to.equal('selected');
|
|
39
|
-
});
|
|
40
|
-
it('should render default view-sort selector', async () => {
|
|
41
|
-
var _a;
|
|
42
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
43
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Weekly Views');
|
|
44
|
-
});
|
|
45
|
-
it('should render active view-sort selectors', async () => {
|
|
46
|
-
el.selectedSort = 'alltimeview';
|
|
47
|
-
await el.updateComplete;
|
|
48
|
-
const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
|
|
49
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('All-time Views');
|
|
50
|
-
});
|
|
51
|
-
it('should render default title-sort selector', async () => {
|
|
52
|
-
var _a;
|
|
53
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
54
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Title');
|
|
55
|
-
});
|
|
56
|
-
it('should render default date-sort selector', async () => {
|
|
57
|
-
var _a;
|
|
58
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
59
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Published');
|
|
60
|
-
});
|
|
61
|
-
it('should render active date-sort selectors', async () => {
|
|
62
|
-
el.selectedSort = 'datereviewed';
|
|
63
|
-
await el.updateComplete;
|
|
64
|
-
const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
|
|
65
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Reviewed');
|
|
66
|
-
});
|
|
67
|
-
it('should render default creator-sort selector', async () => {
|
|
68
|
-
var _a;
|
|
69
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
70
|
-
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Creator');
|
|
71
|
-
});
|
|
72
|
-
it('click event on view-sort selector', async () => {
|
|
73
|
-
var _a;
|
|
74
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
75
|
-
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
76
|
-
expect(el.selectedSort).to.equal('weeklyview');
|
|
77
|
-
});
|
|
78
|
-
it('click event on title selector', async () => {
|
|
79
|
-
var _a;
|
|
80
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
81
|
-
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
82
|
-
expect(el.selectedSort).to.equal('title');
|
|
83
|
-
});
|
|
84
|
-
it('click event on date-sort selector', async () => {
|
|
85
|
-
var _a;
|
|
86
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
87
|
-
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
88
|
-
expect(el.selectedSort).to.equal('date');
|
|
89
|
-
});
|
|
90
|
-
it('click event on creator selector', async () => {
|
|
91
|
-
var _a;
|
|
92
|
-
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
93
|
-
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
94
|
-
expect(el.selectedSort).to.equal('creator');
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
describe('Display mode/style buttons', () => {
|
|
98
|
-
it('should render all display mode buttons', async () => {
|
|
99
|
-
var _a, _b, _c, _d, _e;
|
|
28
|
+
`);
|
|
29
|
+
const sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#desktop-sort-selector');
|
|
30
|
+
it('should render sort-by label', async () => {
|
|
31
|
+
var _a;
|
|
32
|
+
expect((_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(0)) === null || _a === void 0 ? void 0 : _a.textContent).to.equal('Sort By');
|
|
33
|
+
});
|
|
34
|
+
it('should render default relevance-sort selector', async () => {
|
|
35
|
+
var _a;
|
|
36
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
37
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Relevance');
|
|
38
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.getAttribute('class')).to.equal('selected');
|
|
39
|
+
});
|
|
40
|
+
it('should render default view-sort selector', async () => {
|
|
41
|
+
var _a;
|
|
42
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
43
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Weekly Views');
|
|
44
|
+
});
|
|
45
|
+
it('should render active view-sort selectors', async () => {
|
|
46
|
+
el.selectedSort = 'alltimeview';
|
|
47
|
+
await el.updateComplete;
|
|
48
|
+
const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
|
|
49
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('All-time Views');
|
|
50
|
+
});
|
|
51
|
+
it('should render default title-sort selector', async () => {
|
|
52
|
+
var _a;
|
|
53
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
54
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Title');
|
|
55
|
+
});
|
|
56
|
+
it('should render default date-sort selector', async () => {
|
|
57
|
+
var _a;
|
|
58
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
59
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Published');
|
|
60
|
+
});
|
|
61
|
+
it('should render active date-sort selectors', async () => {
|
|
62
|
+
el.selectedSort = 'datereviewed';
|
|
63
|
+
await el.updateComplete;
|
|
64
|
+
const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
|
|
65
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Reviewed');
|
|
66
|
+
});
|
|
67
|
+
it('should render default creator-sort selector', async () => {
|
|
68
|
+
var _a;
|
|
69
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
70
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Creator');
|
|
71
|
+
});
|
|
72
|
+
it('click event on view-sort selector', async () => {
|
|
73
|
+
var _a;
|
|
74
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
75
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
76
|
+
expect(el.selectedSort).to.equal('weeklyview');
|
|
77
|
+
});
|
|
78
|
+
it('click event on title selector', async () => {
|
|
79
|
+
var _a;
|
|
80
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
81
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
82
|
+
expect(el.selectedSort).to.equal('title');
|
|
83
|
+
});
|
|
84
|
+
it('click event on date-sort selector', async () => {
|
|
85
|
+
var _a;
|
|
86
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
87
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
88
|
+
expect(el.selectedSort).to.equal('date');
|
|
89
|
+
});
|
|
90
|
+
it('click event on creator selector', async () => {
|
|
91
|
+
var _a;
|
|
92
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
93
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
94
|
+
expect(el.selectedSort).to.equal('creator');
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('Display mode/style buttons', () => {
|
|
98
|
+
it('should render all display mode buttons', async () => {
|
|
99
|
+
var _a, _b, _c, _d, _e;
|
|
100
100
|
const el = await fixture(html `
|
|
101
101
|
<sort-filter-bar> </sort-filter-bar>
|
|
102
|
-
`);
|
|
103
|
-
const displayModeButtonList = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('ul');
|
|
104
|
-
const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
|
|
105
|
-
expect(gridButton).to.exist;
|
|
106
|
-
const detailListButton = (_d = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(1)) === null || _d === void 0 ? void 0 : _d.querySelector('#list-detail-button');
|
|
107
|
-
expect(detailListButton).to.exist;
|
|
108
|
-
const compactListButton = (_e = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('#list-compact-button');
|
|
109
|
-
expect(compactListButton).to.exist;
|
|
110
|
-
});
|
|
111
|
-
it('should active current display mode', async () => {
|
|
112
|
-
var _a, _b, _c;
|
|
102
|
+
`);
|
|
103
|
+
const displayModeButtonList = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('ul');
|
|
104
|
+
const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
|
|
105
|
+
expect(gridButton).to.exist;
|
|
106
|
+
const detailListButton = (_d = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(1)) === null || _d === void 0 ? void 0 : _d.querySelector('#list-detail-button');
|
|
107
|
+
expect(detailListButton).to.exist;
|
|
108
|
+
const compactListButton = (_e = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('#list-compact-button');
|
|
109
|
+
expect(compactListButton).to.exist;
|
|
110
|
+
});
|
|
111
|
+
it('should active current display mode', async () => {
|
|
112
|
+
var _a, _b, _c;
|
|
113
113
|
const el = await fixture(html `
|
|
114
114
|
<sort-filter-bar> </sort-filter-bar>
|
|
115
|
-
`);
|
|
116
|
-
el.displayMode = 'grid';
|
|
117
|
-
await el.updateComplete;
|
|
118
|
-
const displayModeTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('button.active')) === null || _c === void 0 ? void 0 : _c.getAttribute('title');
|
|
119
|
-
expect(displayModeTitle).to.equal('Tile view');
|
|
120
|
-
});
|
|
121
|
-
});
|
|
115
|
+
`);
|
|
116
|
+
el.displayMode = 'grid';
|
|
117
|
+
await el.updateComplete;
|
|
118
|
+
const displayModeTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('button.active')) === null || _c === void 0 ? void 0 : _c.getAttribute('title');
|
|
119
|
+
expect(displayModeTitle).to.equal('Tile view');
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
122
|
//# sourceMappingURL=sort-filter-bar.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../src/tiles/overlay/text-overlay';
|
|
1
|
+
import '../src/tiles/overlay/text-overlay';
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../src/tiles/overlay/text-overlay';
|
|
5
|
-
describe('Text Overlay component', () => {
|
|
6
|
-
it('should render initial component', async () => {
|
|
7
|
-
var _a, _b;
|
|
8
|
-
const el = await fixture(html `<text-overlay></text-overlay>`);
|
|
9
|
-
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
10
|
-
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
11
|
-
expect(overlay).to.exist;
|
|
12
|
-
expect(noPreview).to.exist;
|
|
13
|
-
});
|
|
14
|
-
it('should render component if loggedIn required', async () => {
|
|
15
|
-
var _a, _b;
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../src/tiles/overlay/text-overlay';
|
|
5
|
+
describe('Text Overlay component', () => {
|
|
6
|
+
it('should render initial component', async () => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const el = await fixture(html `<text-overlay></text-overlay>`);
|
|
9
|
+
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
10
|
+
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
11
|
+
expect(overlay).to.exist;
|
|
12
|
+
expect(noPreview).to.exist;
|
|
13
|
+
});
|
|
14
|
+
it('should render component if loggedIn required', async () => {
|
|
15
|
+
var _a, _b;
|
|
16
16
|
const el = await fixture(html `
|
|
17
17
|
<text-overlay .loggedIn=${false} .loginRequired=${true}> </text-overlay>
|
|
18
|
-
`);
|
|
19
|
-
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
20
|
-
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
21
|
-
expect(overlay).to.exist;
|
|
22
|
-
expect(noPreview).to.exist;
|
|
23
|
-
expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Log in\nto view this item');
|
|
24
|
-
});
|
|
25
|
-
it('should render component if content warning', async () => {
|
|
26
|
-
var _a, _b;
|
|
18
|
+
`);
|
|
19
|
+
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
20
|
+
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
21
|
+
expect(overlay).to.exist;
|
|
22
|
+
expect(noPreview).to.exist;
|
|
23
|
+
expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Log in\nto view this item');
|
|
24
|
+
});
|
|
25
|
+
it('should render component if content warning', async () => {
|
|
26
|
+
var _a, _b;
|
|
27
27
|
const el = await fixture(html `
|
|
28
28
|
<text-overlay .loggedIn=${false} .loginRequired=${false}> </text-overlay>
|
|
29
|
-
`);
|
|
30
|
-
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
31
|
-
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
32
|
-
expect(overlay).to.exist;
|
|
33
|
-
expect(noPreview).to.exist;
|
|
34
|
-
expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
|
|
35
|
-
});
|
|
36
|
-
it('should render component if content warning', async () => {
|
|
37
|
-
var _a, _b;
|
|
29
|
+
`);
|
|
30
|
+
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
31
|
+
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
32
|
+
expect(overlay).to.exist;
|
|
33
|
+
expect(noPreview).to.exist;
|
|
34
|
+
expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
|
|
35
|
+
});
|
|
36
|
+
it('should render component if content warning', async () => {
|
|
37
|
+
var _a, _b;
|
|
38
38
|
const el = await fixture(html `
|
|
39
39
|
<text-overlay .loggedIn=${true} .loginRequired=${true}> </text-overlay>
|
|
40
|
-
`);
|
|
41
|
-
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
42
|
-
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
43
|
-
expect(overlay).to.exist;
|
|
44
|
-
expect(noPreview).to.exist;
|
|
45
|
-
expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
|
|
46
|
-
});
|
|
47
|
-
});
|
|
40
|
+
`);
|
|
41
|
+
const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
|
|
42
|
+
const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
|
|
43
|
+
expect(overlay).to.exist;
|
|
44
|
+
expect(noPreview).to.exist;
|
|
45
|
+
expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
48
|
//# sourceMappingURL=text-overlay.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../src/tiles/text-snippet-block';
|
|
1
|
+
import '../src/tiles/text-snippet-block';
|