@internetarchive/collection-browser 0.3.7 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +48 -47
- package/dist/src/app-root.js +271 -250
- 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 +278 -246
- package/dist/src/collection-browser.js +1105 -1031
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
- package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
- 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/more-facets-content.d.ts +76 -76
- package/dist/src/collection-facets/more-facets-content.js +353 -353
- 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 +77 -77
- package/dist/src/collection-facets.js +388 -389
- 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 +103 -103
- package/dist/src/models.js +117 -117
- package/dist/src/restoration-state-handler.d.ts +46 -46
- package/dist/src/restoration-state-handler.js +230 -230
- 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 +40 -40
- package/dist/src/tiles/image-block.d.ts +17 -17
- package/dist/src/tiles/image-block.js +69 -69
- 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 +21 -21
- package/dist/src/tiles/list/tile-list-compact.js +93 -93
- package/dist/src/tiles/list/tile-list.d.ts +50 -50
- package/dist/src/tiles/list/tile-list.js +275 -272
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- 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 +30 -30
- 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/tile-dispatcher.d.ts +36 -36
- package/dist/src/tiles/tile-dispatcher.js +128 -128
- package/dist/src/utils/analytics-events.d.ts +22 -22
- package/dist/src/utils/analytics-events.js +24 -24
- package/dist/src/utils/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +76 -76
- 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 +583 -444
- 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/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +114 -114
- 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 +544 -498
- 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/image-block.test.d.ts +1 -1
- package/dist/test/image-block.test.js +48 -48
- 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 +10 -8
- package/dist/test/mocks/mock-search-responses.js +271 -198
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/mocks/mock-search-service.d.ts +13 -13
- package/dist/test/mocks/mock-search-service.js +36 -32
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +126 -126
- 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 -57
- 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-compact.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +92 -92
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +96 -67
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- 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 +3 -3
- package/renovate.json +6 -6
- package/src/app-root.ts +32 -9
- package/src/collection-browser.ts +130 -35
- package/src/collection-facets.ts +2 -3
- package/src/tiles/list/tile-list.ts +6 -2
- package/test/collection-browser.test.ts +207 -0
- package/test/collection-facets.test.ts +67 -0
- package/test/mocks/mock-search-responses.ts +82 -0
- package/test/mocks/mock-search-service.ts +6 -0
- package/test/tiles/list/tile-list.test.ts +40 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import { Aggregation } from '@internetarchive/search-service';
|
|
5
|
-
import '../../src/collection-facets/more-facets-content';
|
|
6
|
-
import { MockSearchService } from '../mocks/mock-search-service';
|
|
7
|
-
import { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';
|
|
8
|
-
const selectedFacetsGroup = {
|
|
9
|
-
title: 'Media Type',
|
|
10
|
-
key: 'mediatype',
|
|
11
|
-
buckets: [
|
|
12
|
-
{ displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
|
|
13
|
-
{ displayText: 'movies', key: 'movies', count: 901, state: 'none' },
|
|
14
|
-
{ displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
|
|
15
|
-
{ displayText: 'data', key: 'data', count: 230, state: 'none' },
|
|
16
|
-
{ displayText: 'web', key: 'web', count: 453, state: 'none' },
|
|
17
|
-
],
|
|
18
|
-
};
|
|
19
|
-
const aggregations = {
|
|
20
|
-
collection: new Aggregation({
|
|
21
|
-
buckets: [
|
|
22
|
-
{
|
|
23
|
-
key: 'foo',
|
|
24
|
-
doc_count: 5,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
}),
|
|
28
|
-
};
|
|
29
|
-
describe('More facets content', () => {
|
|
30
|
-
it('should render more facets template', async () => {
|
|
31
|
-
var _a;
|
|
32
|
-
const el = await fixture(html `<more-facets-content></more-facets-content>`);
|
|
33
|
-
el.facetsLoading = false;
|
|
34
|
-
await el.updateComplete;
|
|
35
|
-
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-content')).to.exist;
|
|
36
|
-
});
|
|
37
|
-
it('should render more facets loader template', async () => {
|
|
38
|
-
var _a;
|
|
39
|
-
const el = await fixture(html `<more-facets-content></more-facets-content>`);
|
|
40
|
-
el.facetsLoading = true;
|
|
41
|
-
await el.updateComplete;
|
|
42
|
-
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-loader')).to.exist;
|
|
43
|
-
});
|
|
44
|
-
it('should render pagination for more facets', async () => {
|
|
45
|
-
var _a;
|
|
46
|
-
const searchService = new MockSearchService();
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import { Aggregation } from '@internetarchive/search-service';
|
|
5
|
+
import '../../src/collection-facets/more-facets-content';
|
|
6
|
+
import { MockSearchService } from '../mocks/mock-search-service';
|
|
7
|
+
import { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';
|
|
8
|
+
const selectedFacetsGroup = {
|
|
9
|
+
title: 'Media Type',
|
|
10
|
+
key: 'mediatype',
|
|
11
|
+
buckets: [
|
|
12
|
+
{ displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
|
|
13
|
+
{ displayText: 'movies', key: 'movies', count: 901, state: 'none' },
|
|
14
|
+
{ displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
|
|
15
|
+
{ displayText: 'data', key: 'data', count: 230, state: 'none' },
|
|
16
|
+
{ displayText: 'web', key: 'web', count: 453, state: 'none' },
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
const aggregations = {
|
|
20
|
+
collection: new Aggregation({
|
|
21
|
+
buckets: [
|
|
22
|
+
{
|
|
23
|
+
key: 'foo',
|
|
24
|
+
doc_count: 5,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
describe('More facets content', () => {
|
|
30
|
+
it('should render more facets template', async () => {
|
|
31
|
+
var _a;
|
|
32
|
+
const el = await fixture(html `<more-facets-content></more-facets-content>`);
|
|
33
|
+
el.facetsLoading = false;
|
|
34
|
+
await el.updateComplete;
|
|
35
|
+
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-content')).to.exist;
|
|
36
|
+
});
|
|
37
|
+
it('should render more facets loader template', async () => {
|
|
38
|
+
var _a;
|
|
39
|
+
const el = await fixture(html `<more-facets-content></more-facets-content>`);
|
|
40
|
+
el.facetsLoading = true;
|
|
41
|
+
await el.updateComplete;
|
|
42
|
+
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-loader')).to.exist;
|
|
43
|
+
});
|
|
44
|
+
it('should render pagination for more facets', async () => {
|
|
45
|
+
var _a;
|
|
46
|
+
const searchService = new MockSearchService();
|
|
47
47
|
const el = await fixture(html `<more-facets-content
|
|
48
48
|
.searchService=${searchService}
|
|
49
|
-
></more-facets-content>`);
|
|
50
|
-
el.facetKey = 'mediatype';
|
|
51
|
-
el.facetsLoading = false;
|
|
52
|
-
el.paginationSize = 6;
|
|
53
|
-
await el.updateComplete;
|
|
54
|
-
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('more-facets-pagination')).to.exist;
|
|
55
|
-
});
|
|
56
|
-
it('query for more facets content using search service', async () => {
|
|
57
|
-
var _a;
|
|
58
|
-
const searchService = new MockSearchService();
|
|
49
|
+
></more-facets-content>`);
|
|
50
|
+
el.facetKey = 'mediatype';
|
|
51
|
+
el.facetsLoading = false;
|
|
52
|
+
el.paginationSize = 6;
|
|
53
|
+
await el.updateComplete;
|
|
54
|
+
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('more-facets-pagination')).to.exist;
|
|
55
|
+
});
|
|
56
|
+
it('query for more facets content using search service', async () => {
|
|
57
|
+
var _a;
|
|
58
|
+
const searchService = new MockSearchService();
|
|
59
59
|
const el = await fixture(html `<more-facets-content
|
|
60
60
|
.searchService=${searchService}
|
|
61
|
-
></more-facets-content>`);
|
|
62
|
-
el.facetKey = 'collection';
|
|
63
|
-
el.fullQuery = 'title:hello';
|
|
64
|
-
await el.updateComplete;
|
|
65
|
-
expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
|
|
66
|
-
});
|
|
67
|
-
it('filter raw selectedFacets object', async () => {
|
|
68
|
-
var _a;
|
|
69
|
-
const searchService = new MockSearchService();
|
|
61
|
+
></more-facets-content>`);
|
|
62
|
+
el.facetKey = 'collection';
|
|
63
|
+
el.fullQuery = 'title:hello';
|
|
64
|
+
await el.updateComplete;
|
|
65
|
+
expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
|
|
66
|
+
});
|
|
67
|
+
it('filter raw selectedFacets object', async () => {
|
|
68
|
+
var _a;
|
|
69
|
+
const searchService = new MockSearchService();
|
|
70
70
|
const el = await fixture(html `<more-facets-content
|
|
71
71
|
.searchService=${searchService}
|
|
72
72
|
.selectedFacets=${selectedFacetsGroup}
|
|
73
|
-
></more-facets-content>`);
|
|
74
|
-
el.facetKey = 'collection';
|
|
75
|
-
el.fullQuery = 'title:hello';
|
|
76
|
-
await el.updateComplete;
|
|
77
|
-
expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
|
|
78
|
-
});
|
|
79
|
-
it('combine selectedFacets and aggregationFacets and render on modal', async () => {
|
|
80
|
-
var _a;
|
|
81
|
-
const searchService = new MockSearchService();
|
|
73
|
+
></more-facets-content>`);
|
|
74
|
+
el.facetKey = 'collection';
|
|
75
|
+
el.fullQuery = 'title:hello';
|
|
76
|
+
await el.updateComplete;
|
|
77
|
+
expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
|
|
78
|
+
});
|
|
79
|
+
it('combine selectedFacets and aggregationFacets and render on modal', async () => {
|
|
80
|
+
var _a;
|
|
81
|
+
const searchService = new MockSearchService();
|
|
82
82
|
const el = await fixture(html `<more-facets-content
|
|
83
83
|
.searchService=${searchService}
|
|
84
84
|
.selectedFacets=${selectedFacetsGroup}
|
|
85
85
|
.aggregations=${aggregations}
|
|
86
|
-
></more-facets-content>`);
|
|
87
|
-
await el.updateComplete;
|
|
88
|
-
expect(el.facetGroupTitle).to.equal('Collection');
|
|
89
|
-
const facetGroup = (_a = el.facetGroup) === null || _a === void 0 ? void 0 : _a.shift();
|
|
90
|
-
expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.key).to.equal('collection');
|
|
91
|
-
expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.title).to.equal('Collection');
|
|
92
|
-
const bucket = facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.buckets[0];
|
|
93
|
-
expect(bucket === null || bucket === void 0 ? void 0 : bucket.key).to.equal('foo');
|
|
94
|
-
expect(bucket === null || bucket === void 0 ? void 0 : bucket.count).to.equal(5);
|
|
95
|
-
});
|
|
96
|
-
it('cancel button clicked event', async () => {
|
|
97
|
-
var _a;
|
|
98
|
-
const mockAnalyticsHandler = new MockAnalyticsHandler();
|
|
86
|
+
></more-facets-content>`);
|
|
87
|
+
await el.updateComplete;
|
|
88
|
+
expect(el.facetGroupTitle).to.equal('Collection');
|
|
89
|
+
const facetGroup = (_a = el.facetGroup) === null || _a === void 0 ? void 0 : _a.shift();
|
|
90
|
+
expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.key).to.equal('collection');
|
|
91
|
+
expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.title).to.equal('Collection');
|
|
92
|
+
const bucket = facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.buckets[0];
|
|
93
|
+
expect(bucket === null || bucket === void 0 ? void 0 : bucket.key).to.equal('foo');
|
|
94
|
+
expect(bucket === null || bucket === void 0 ? void 0 : bucket.count).to.equal(5);
|
|
95
|
+
});
|
|
96
|
+
it('cancel button clicked event', async () => {
|
|
97
|
+
var _a;
|
|
98
|
+
const mockAnalyticsHandler = new MockAnalyticsHandler();
|
|
99
99
|
const el = await fixture(html `<more-facets-content
|
|
100
100
|
.analyticsHandler=${mockAnalyticsHandler}
|
|
101
|
-
></more-facets-content>`);
|
|
102
|
-
el.facetsLoading = false;
|
|
103
|
-
el.paginationSize = 5;
|
|
104
|
-
await el.updateComplete;
|
|
105
|
-
// select cancel button
|
|
106
|
-
const cancelButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-cancel');
|
|
107
|
-
cancelButton === null || cancelButton === void 0 ? void 0 : cancelButton.click();
|
|
108
|
-
expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
|
|
109
|
-
expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');
|
|
110
|
-
expect(mockAnalyticsHandler.callLabel).to.equal('undefined');
|
|
111
|
-
});
|
|
112
|
-
it('facet apply button clicked event', async () => {
|
|
113
|
-
var _a;
|
|
114
|
-
const mockAnalyticsHandler = new MockAnalyticsHandler();
|
|
101
|
+
></more-facets-content>`);
|
|
102
|
+
el.facetsLoading = false;
|
|
103
|
+
el.paginationSize = 5;
|
|
104
|
+
await el.updateComplete;
|
|
105
|
+
// select cancel button
|
|
106
|
+
const cancelButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-cancel');
|
|
107
|
+
cancelButton === null || cancelButton === void 0 ? void 0 : cancelButton.click();
|
|
108
|
+
expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
|
|
109
|
+
expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');
|
|
110
|
+
expect(mockAnalyticsHandler.callLabel).to.equal('undefined');
|
|
111
|
+
});
|
|
112
|
+
it('facet apply button clicked event', async () => {
|
|
113
|
+
var _a;
|
|
114
|
+
const mockAnalyticsHandler = new MockAnalyticsHandler();
|
|
115
115
|
const el = await fixture(html `<more-facets-content
|
|
116
116
|
.analyticsHandler=${mockAnalyticsHandler}
|
|
117
|
-
></more-facets-content>`);
|
|
118
|
-
el.facetsLoading = false;
|
|
119
|
-
el.paginationSize = 5;
|
|
120
|
-
el.facetKey = 'collection';
|
|
121
|
-
await el.updateComplete;
|
|
122
|
-
// select submit button
|
|
123
|
-
const submitButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-submit');
|
|
124
|
-
submitButton === null || submitButton === void 0 ? void 0 : submitButton.click();
|
|
125
|
-
expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
|
|
126
|
-
expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');
|
|
127
|
-
expect(mockAnalyticsHandler.callLabel).to.equal('collection');
|
|
128
|
-
});
|
|
129
|
-
});
|
|
117
|
+
></more-facets-content>`);
|
|
118
|
+
el.facetsLoading = false;
|
|
119
|
+
el.paginationSize = 5;
|
|
120
|
+
el.facetKey = 'collection';
|
|
121
|
+
await el.updateComplete;
|
|
122
|
+
// select submit button
|
|
123
|
+
const submitButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-submit');
|
|
124
|
+
submitButton === null || submitButton === void 0 ? void 0 : submitButton.click();
|
|
125
|
+
expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
|
|
126
|
+
expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');
|
|
127
|
+
expect(mockAnalyticsHandler.callLabel).to.equal('collection');
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
130
|
//# sourceMappingURL=more-facets-content.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../../src/collection-facets/more-facets-pagination';
|
|
1
|
+
import '../../src/collection-facets/more-facets-pagination';
|
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture, oneEvent } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import sinon from 'sinon';
|
|
5
|
-
import '../../src/collection-facets/more-facets-pagination';
|
|
6
|
-
afterEach(() => {
|
|
7
|
-
sinon.restore();
|
|
8
|
-
});
|
|
9
|
-
describe('More facets pagination', () => {
|
|
10
|
-
describe('5 pages or less', () => {
|
|
11
|
-
it('shows all pages', async () => {
|
|
12
|
-
var _a;
|
|
13
|
-
const el = await fixture(html `<more-facets-pagination .size=${5}></more-facets-pagination>`);
|
|
14
|
-
await el.updateComplete;
|
|
15
|
-
const pageButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('button[data-page]');
|
|
16
|
-
expect(pageButtons.length).to.greaterThan(0);
|
|
17
|
-
pageButtons.forEach((button, index) => {
|
|
18
|
-
expect(button.textContent).to.contain(index + 1);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
it('should render pagination template', async () => {
|
|
23
|
-
var _a, _b;
|
|
24
|
-
const el = await fixture(html `<more-facets-pagination .size=${10}></more-facets-pagination>`);
|
|
25
|
-
await el.updateComplete;
|
|
26
|
-
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination')).to.exist;
|
|
27
|
-
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.arrow-icon')).to.exist;
|
|
28
|
-
});
|
|
29
|
-
it('should render page numbers', async () => {
|
|
30
|
-
var _a;
|
|
31
|
-
const el = await fixture(html `<more-facets-pagination .size=${3}></more-facets-pagination>`);
|
|
32
|
-
await el.updateComplete;
|
|
33
|
-
const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
|
|
34
|
-
expect(pageNumberElement).to.exist;
|
|
35
|
-
expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button').length).to.equal(3);
|
|
36
|
-
});
|
|
37
|
-
it('check current page and total pages', async () => {
|
|
38
|
-
var _a, _b;
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture, oneEvent } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import sinon from 'sinon';
|
|
5
|
+
import '../../src/collection-facets/more-facets-pagination';
|
|
6
|
+
afterEach(() => {
|
|
7
|
+
sinon.restore();
|
|
8
|
+
});
|
|
9
|
+
describe('More facets pagination', () => {
|
|
10
|
+
describe('5 pages or less', () => {
|
|
11
|
+
it('shows all pages', async () => {
|
|
12
|
+
var _a;
|
|
13
|
+
const el = await fixture(html `<more-facets-pagination .size=${5}></more-facets-pagination>`);
|
|
14
|
+
await el.updateComplete;
|
|
15
|
+
const pageButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('button[data-page]');
|
|
16
|
+
expect(pageButtons.length).to.greaterThan(0);
|
|
17
|
+
pageButtons.forEach((button, index) => {
|
|
18
|
+
expect(button.textContent).to.contain(index + 1);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
it('should render pagination template', async () => {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
const el = await fixture(html `<more-facets-pagination .size=${10}></more-facets-pagination>`);
|
|
25
|
+
await el.updateComplete;
|
|
26
|
+
expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination')).to.exist;
|
|
27
|
+
expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.arrow-icon')).to.exist;
|
|
28
|
+
});
|
|
29
|
+
it('should render page numbers', async () => {
|
|
30
|
+
var _a;
|
|
31
|
+
const el = await fixture(html `<more-facets-pagination .size=${3}></more-facets-pagination>`);
|
|
32
|
+
await el.updateComplete;
|
|
33
|
+
const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
|
|
34
|
+
expect(pageNumberElement).to.exist;
|
|
35
|
+
expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button').length).to.equal(3);
|
|
36
|
+
});
|
|
37
|
+
it('check current page and total pages', async () => {
|
|
38
|
+
var _a, _b;
|
|
39
39
|
const el = await fixture(html `<more-facets-pagination
|
|
40
40
|
.size=${4}
|
|
41
41
|
.currentPage=${2}
|
|
42
|
-
></more-facets-pagination>`);
|
|
43
|
-
await el.updateComplete;
|
|
44
|
-
const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
|
|
45
|
-
expect(pageNumberElement).to.exist;
|
|
46
|
-
expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button')[1].classList.contains('current')).to.be.true;
|
|
47
|
-
expect((_b = el.pages) === null || _b === void 0 ? void 0 : _b.length).to.equal(4);
|
|
48
|
-
});
|
|
49
|
-
it('get page numbers based of size and currentPage', async () => {
|
|
50
|
-
var _a;
|
|
42
|
+
></more-facets-pagination>`);
|
|
43
|
+
await el.updateComplete;
|
|
44
|
+
const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
|
|
45
|
+
expect(pageNumberElement).to.exist;
|
|
46
|
+
expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button')[1].classList.contains('current')).to.be.true;
|
|
47
|
+
expect((_b = el.pages) === null || _b === void 0 ? void 0 : _b.length).to.equal(4);
|
|
48
|
+
});
|
|
49
|
+
it('get page numbers based of size and currentPage', async () => {
|
|
50
|
+
var _a;
|
|
51
51
|
const el = await fixture(html `<more-facets-pagination
|
|
52
52
|
.size=${4}
|
|
53
53
|
.currentPage=${2}
|
|
54
|
-
></more-facets-pagination>`);
|
|
55
|
-
await el.updateComplete;
|
|
56
|
-
expect((_a = el.pages) === null || _a === void 0 ? void 0 : _a.length).to.equal(4);
|
|
57
|
-
});
|
|
58
|
-
describe('Selecting a page', () => {
|
|
59
|
-
it('fires event', async () => {
|
|
60
|
-
const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
|
|
61
|
-
await el.updateComplete;
|
|
62
|
-
setTimeout(() => el.dispatchEvent(new CustomEvent('pageNumberClicked', { detail: { page: 15 } })));
|
|
63
|
-
const { detail } = await oneEvent(el, 'pageNumberClicked');
|
|
64
|
-
expect(detail === null || detail === void 0 ? void 0 : detail.page).to.equal(15);
|
|
65
|
-
});
|
|
66
|
-
it('sets off side effects with `onChange`', async () => {
|
|
67
|
-
var _a;
|
|
54
|
+
></more-facets-pagination>`);
|
|
55
|
+
await el.updateComplete;
|
|
56
|
+
expect((_a = el.pages) === null || _a === void 0 ? void 0 : _a.length).to.equal(4);
|
|
57
|
+
});
|
|
58
|
+
describe('Selecting a page', () => {
|
|
59
|
+
it('fires event', async () => {
|
|
60
|
+
const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
|
|
61
|
+
await el.updateComplete;
|
|
62
|
+
setTimeout(() => el.dispatchEvent(new CustomEvent('pageNumberClicked', { detail: { page: 15 } })));
|
|
63
|
+
const { detail } = await oneEvent(el, 'pageNumberClicked');
|
|
64
|
+
expect(detail === null || detail === void 0 ? void 0 : detail.page).to.equal(15);
|
|
65
|
+
});
|
|
66
|
+
it('sets off side effects with `onChange`', async () => {
|
|
67
|
+
var _a;
|
|
68
68
|
const el = await fixture(html `<more-facets-pagination
|
|
69
69
|
.size=${'10'}
|
|
70
70
|
.currentPage=${2}
|
|
71
|
-
></more-facets-pagination>`);
|
|
72
|
-
expect(el.currentPage).to.equal(2); // confirm current page
|
|
73
|
-
const fake1 = sinon.fake();
|
|
74
|
-
const fake2 = sinon.fake();
|
|
75
|
-
el.observePageCount = fake1;
|
|
76
|
-
el.emitPageClick = fake2;
|
|
77
|
-
// select first page button
|
|
78
|
-
const pageButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers > button');
|
|
79
|
-
// confirm button isn't selected
|
|
80
|
-
expect(pageButton.classList.contains('current')).to.be.false;
|
|
81
|
-
pageButton.click();
|
|
82
|
-
await el.updateComplete;
|
|
83
|
-
expect(fake1.callCount).to.equal(1);
|
|
84
|
-
expect(fake2.callCount).to.equal(1);
|
|
85
|
-
expect(el.currentPage).to.equal(1); // brings us back to currentPage
|
|
86
|
-
// confirm button is selected
|
|
87
|
-
expect(pageButton.classList.contains('current')).to.be.true;
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
describe('Using Arrows', () => {
|
|
91
|
-
it('going backwards', async () => {
|
|
92
|
-
var _a, _b;
|
|
71
|
+
></more-facets-pagination>`);
|
|
72
|
+
expect(el.currentPage).to.equal(2); // confirm current page
|
|
73
|
+
const fake1 = sinon.fake();
|
|
74
|
+
const fake2 = sinon.fake();
|
|
75
|
+
el.observePageCount = fake1;
|
|
76
|
+
el.emitPageClick = fake2;
|
|
77
|
+
// select first page button
|
|
78
|
+
const pageButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers > button');
|
|
79
|
+
// confirm button isn't selected
|
|
80
|
+
expect(pageButton.classList.contains('current')).to.be.false;
|
|
81
|
+
pageButton.click();
|
|
82
|
+
await el.updateComplete;
|
|
83
|
+
expect(fake1.callCount).to.equal(1);
|
|
84
|
+
expect(fake2.callCount).to.equal(1);
|
|
85
|
+
expect(el.currentPage).to.equal(1); // brings us back to currentPage
|
|
86
|
+
// confirm button is selected
|
|
87
|
+
expect(pageButton.classList.contains('current')).to.be.true;
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
describe('Using Arrows', () => {
|
|
91
|
+
it('going backwards', async () => {
|
|
92
|
+
var _a, _b;
|
|
93
93
|
const el = await fixture(html `<more-facets-pagination
|
|
94
94
|
.size=${'10'}
|
|
95
95
|
.currentPage=${2}
|
|
96
|
-
></more-facets-pagination>`);
|
|
97
|
-
expect(el.currentPage).to.equal(2); // confirm current page
|
|
98
|
-
const fake1 = sinon.fake();
|
|
99
|
-
const fake2 = sinon.fake();
|
|
100
|
-
el.observePageCount = fake1;
|
|
101
|
-
el.emitPageClick = fake2;
|
|
102
|
-
// select first page button
|
|
103
|
-
const rewindButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.rewind');
|
|
104
|
-
rewindButton.click();
|
|
105
|
-
await el.updateComplete;
|
|
106
|
-
expect(fake1.callCount).to.equal(1);
|
|
107
|
-
expect(fake2.callCount).to.equal(1);
|
|
108
|
-
expect(el.currentPage).to.equal(1); // brings us back 1 page
|
|
109
|
-
// confirm button is selected
|
|
110
|
-
expect(((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.page-numbers > button[data-page="1"]')).classList.contains('current')).to.be.true;
|
|
111
|
-
});
|
|
112
|
-
it('going forwards', async () => {
|
|
113
|
-
var _a;
|
|
96
|
+
></more-facets-pagination>`);
|
|
97
|
+
expect(el.currentPage).to.equal(2); // confirm current page
|
|
98
|
+
const fake1 = sinon.fake();
|
|
99
|
+
const fake2 = sinon.fake();
|
|
100
|
+
el.observePageCount = fake1;
|
|
101
|
+
el.emitPageClick = fake2;
|
|
102
|
+
// select first page button
|
|
103
|
+
const rewindButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.rewind');
|
|
104
|
+
rewindButton.click();
|
|
105
|
+
await el.updateComplete;
|
|
106
|
+
expect(fake1.callCount).to.equal(1);
|
|
107
|
+
expect(fake2.callCount).to.equal(1);
|
|
108
|
+
expect(el.currentPage).to.equal(1); // brings us back 1 page
|
|
109
|
+
// confirm button is selected
|
|
110
|
+
expect(((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.page-numbers > button[data-page="1"]')).classList.contains('current')).to.be.true;
|
|
111
|
+
});
|
|
112
|
+
it('going forwards', async () => {
|
|
113
|
+
var _a;
|
|
114
114
|
const el = await fixture(html `<more-facets-pagination
|
|
115
115
|
.size=${'10'}
|
|
116
116
|
.currentPage=${5}
|
|
117
|
-
></more-facets-pagination>`);
|
|
118
|
-
expect(el.currentPage).to.equal(5); // confirm current page
|
|
119
|
-
const fake1 = sinon.fake();
|
|
120
|
-
const fake2 = sinon.fake();
|
|
121
|
-
el.observePageCount = fake1;
|
|
122
|
-
el.emitPageClick = fake2;
|
|
123
|
-
// select first page button
|
|
124
|
-
const forwardButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.forward');
|
|
125
|
-
forwardButton.click();
|
|
126
|
-
await el.updateComplete;
|
|
127
|
-
expect(fake1.callCount).to.equal(1);
|
|
128
|
-
expect(fake2.callCount).to.equal(1);
|
|
129
|
-
expect(el.currentPage).to.equal(6); // brings us forward 1 page
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
});
|
|
117
|
+
></more-facets-pagination>`);
|
|
118
|
+
expect(el.currentPage).to.equal(5); // confirm current page
|
|
119
|
+
const fake1 = sinon.fake();
|
|
120
|
+
const fake2 = sinon.fake();
|
|
121
|
+
el.observePageCount = fake1;
|
|
122
|
+
el.emitPageClick = fake2;
|
|
123
|
+
// select first page button
|
|
124
|
+
const forwardButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.forward');
|
|
125
|
+
forwardButton.click();
|
|
126
|
+
await el.updateComplete;
|
|
127
|
+
expect(fake1.callCount).to.equal(1);
|
|
128
|
+
expect(fake2.callCount).to.equal(1);
|
|
129
|
+
expect(el.currentPage).to.equal(6); // brings us forward 1 page
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
133
|
//# sourceMappingURL=more-facets-pagination.test.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '@internetarchive/modal-manager';
|
|
2
|
-
import '../src/collection-facets';
|
|
1
|
+
import '@internetarchive/modal-manager';
|
|
2
|
+
import '../src/collection-facets';
|