@internetarchive/collection-browser 0.3.5-alpha.1 → 0.3.5
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 +47 -43
- package/dist/src/app-root.js +331 -285
- 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 +246 -245
- package/dist/src/collection-browser.js +1370 -1359
- 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 +42 -42
- package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
- package/dist/src/collection-facets/facets-template.d.ts +16 -16
- package/dist/src/collection-facets/facets-template.js +130 -128
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- 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 +551 -551
- 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 -102
- package/dist/src/models.js +117 -117
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +46 -45
- package/dist/src/restoration-state-handler.js +230 -220
- package/dist/src/restoration-state-handler.js.map +1 -1
- 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 +46 -40
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- 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 -20
- package/dist/src/tiles/list/tile-list-compact.js +94 -90
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.d.ts +50 -50
- package/dist/src/tiles/list/tile-list.js +271 -268
- 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 +49 -47
- package/dist/src/tiles/mediatype-icon.js.map +1 -1
- 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 +481 -415
- 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-template.test.js.map +1 -1
- 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 +498 -498
- 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 +8 -8
- package/dist/test/mocks/mock-search-responses.js +198 -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 +32 -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 -117
- package/dist/test/restoration-state-handler.test.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 -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 +125 -26
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +79 -47
- 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 +115 -115
- package/renovate.json +6 -6
- package/src/app-root.ts +104 -55
- package/src/collection-browser.ts +1503 -1488
- package/src/collection-facets/facet-tombstone-row.ts +40 -40
- package/src/collection-facets/facets-template.ts +5 -3
- package/src/collection-facets.ts +635 -635
- package/src/models.ts +1 -0
- package/src/restoration-state-handler.ts +19 -1
- package/src/tiles/grid/tile-stats.ts +18 -5
- package/src/tiles/list/tile-list-compact.ts +7 -3
- package/src/tiles/list/tile-list.ts +6 -1
- package/src/tiles/mediatype-icon.ts +2 -0
- package/test/collection-browser.test.ts +679 -599
- package/test/collection-facets/facets-template.test.ts +5 -3
- package/test/mocks/mock-search-responses.ts +226 -226
- package/test/mocks/mock-search-service.ts +61 -61
- package/test/restoration-state-handler.test.ts +12 -0
- package/test/tiles/list/tile-list-compact.test.ts +110 -0
- package/test/tiles/list/tile-list.test.ts +36 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,31 +1,130 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../../../src/tiles/list/tile-list-compact';
|
|
5
|
-
describe('List Tile Compact', () => {
|
|
6
|
-
it('should render initial component', async () => {
|
|
7
|
-
var _a, _b, _c, _d, _e;
|
|
8
|
-
const el = await fixture(html `<tile-list-compact></tile-list-compact>`);
|
|
9
|
-
const listContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-line');
|
|
10
|
-
const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
|
|
11
|
-
const imageBlock = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('image-block');
|
|
12
|
-
const itemIcon = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#icon');
|
|
13
|
-
const itemViews = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('#views');
|
|
14
|
-
expect(listContainer).to.exist;
|
|
15
|
-
expect(itemTitle).to.exist;
|
|
16
|
-
expect(imageBlock).to.exist;
|
|
17
|
-
expect(itemIcon).to.exist;
|
|
18
|
-
expect(itemViews).to.exist;
|
|
19
|
-
});
|
|
20
|
-
it('should render with creator element with title', async () => {
|
|
21
|
-
var _a;
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../../../src/tiles/list/tile-list-compact';
|
|
5
|
+
describe('List Tile Compact', () => {
|
|
6
|
+
it('should render initial component', async () => {
|
|
7
|
+
var _a, _b, _c, _d, _e;
|
|
8
|
+
const el = await fixture(html `<tile-list-compact></tile-list-compact>`);
|
|
9
|
+
const listContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-line');
|
|
10
|
+
const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
|
|
11
|
+
const imageBlock = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('image-block');
|
|
12
|
+
const itemIcon = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#icon');
|
|
13
|
+
const itemViews = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('#views');
|
|
14
|
+
expect(listContainer).to.exist;
|
|
15
|
+
expect(itemTitle).to.exist;
|
|
16
|
+
expect(imageBlock).to.exist;
|
|
17
|
+
expect(itemIcon).to.exist;
|
|
18
|
+
expect(itemViews).to.exist;
|
|
19
|
+
});
|
|
20
|
+
it('should render with creator element with title', async () => {
|
|
21
|
+
var _a;
|
|
22
22
|
const el = await fixture(html `
|
|
23
23
|
<tile-list-compact
|
|
24
24
|
.model=${{ creators: ['someone'] }}
|
|
25
25
|
></tile-list-compact>
|
|
26
|
-
`);
|
|
27
|
-
const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#creator');
|
|
28
|
-
expect(creator).to.exist;
|
|
29
|
-
});
|
|
30
|
-
|
|
26
|
+
`);
|
|
27
|
+
const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#creator');
|
|
28
|
+
expect(creator).to.exist;
|
|
29
|
+
});
|
|
30
|
+
it('should render weekly views when sorting by week', async () => {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
const el = await fixture(html `
|
|
33
|
+
<tile-list-compact
|
|
34
|
+
.model=${{ viewCount: 50, weeklyViewCount: 10 }}
|
|
35
|
+
.sortParam=${{ field: 'week', direction: 'desc' }}
|
|
36
|
+
>
|
|
37
|
+
</tile-list-compact>
|
|
38
|
+
`);
|
|
39
|
+
const viewsColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('views');
|
|
40
|
+
expect(viewsColumn).to.exist;
|
|
41
|
+
expect((_b = viewsColumn === null || viewsColumn === void 0 ? void 0 : viewsColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('10');
|
|
42
|
+
});
|
|
43
|
+
it('should render 0 for views if missing model', async () => {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const el = await fixture(html `
|
|
46
|
+
<tile-list-compact .sortParam=${{ field: 'week', direction: 'desc' }}>
|
|
47
|
+
</tile-list-compact>
|
|
48
|
+
`);
|
|
49
|
+
const viewsColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('views');
|
|
50
|
+
expect(viewsColumn).to.exist;
|
|
51
|
+
expect((_b = viewsColumn === null || viewsColumn === void 0 ? void 0 : viewsColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('0');
|
|
52
|
+
});
|
|
53
|
+
it('should render published date when sorting by it', async () => {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
const model = {
|
|
56
|
+
dateAdded: new Date('2010-01-01'),
|
|
57
|
+
dateArchived: new Date('2011-01-01'),
|
|
58
|
+
datePublished: new Date('2012-01-01'),
|
|
59
|
+
dateReviewed: new Date('2013-01-01'),
|
|
60
|
+
};
|
|
61
|
+
const el = await fixture(html `
|
|
62
|
+
<tile-list-compact
|
|
63
|
+
.model=${model}
|
|
64
|
+
.sortParam=${{ field: 'date', direction: 'desc' }}
|
|
65
|
+
>
|
|
66
|
+
</tile-list-compact>
|
|
67
|
+
`);
|
|
68
|
+
const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
|
|
69
|
+
expect(dateColumn).to.exist;
|
|
70
|
+
expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 01, 2012');
|
|
71
|
+
});
|
|
72
|
+
it('should render added date when sorting by it', async () => {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const model = {
|
|
75
|
+
dateAdded: new Date('2010-01-01'),
|
|
76
|
+
dateArchived: new Date('2011-01-01'),
|
|
77
|
+
datePublished: new Date('2012-01-01'),
|
|
78
|
+
dateReviewed: new Date('2013-01-01'),
|
|
79
|
+
};
|
|
80
|
+
const el = await fixture(html `
|
|
81
|
+
<tile-list-compact
|
|
82
|
+
.model=${model}
|
|
83
|
+
.sortParam=${{ field: 'addeddate', direction: 'desc' }}
|
|
84
|
+
>
|
|
85
|
+
</tile-list-compact>
|
|
86
|
+
`);
|
|
87
|
+
const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
|
|
88
|
+
expect(dateColumn).to.exist;
|
|
89
|
+
expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 01, 2010');
|
|
90
|
+
});
|
|
91
|
+
it('should render archived date when sorting by it', async () => {
|
|
92
|
+
var _a, _b;
|
|
93
|
+
const model = {
|
|
94
|
+
dateAdded: new Date('2010-01-01'),
|
|
95
|
+
dateArchived: new Date('2011-01-01'),
|
|
96
|
+
datePublished: new Date('2012-01-01'),
|
|
97
|
+
dateReviewed: new Date('2013-01-01'),
|
|
98
|
+
};
|
|
99
|
+
const el = await fixture(html `
|
|
100
|
+
<tile-list-compact
|
|
101
|
+
.model=${model}
|
|
102
|
+
.sortParam=${{ field: 'publicdate', direction: 'desc' }}
|
|
103
|
+
>
|
|
104
|
+
</tile-list-compact>
|
|
105
|
+
`);
|
|
106
|
+
const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
|
|
107
|
+
expect(dateColumn).to.exist;
|
|
108
|
+
expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 01, 2011');
|
|
109
|
+
});
|
|
110
|
+
it('should render reviewed date when sorting by it', async () => {
|
|
111
|
+
var _a, _b;
|
|
112
|
+
const model = {
|
|
113
|
+
dateAdded: new Date('2010-01-01'),
|
|
114
|
+
dateArchived: new Date('2011-01-01'),
|
|
115
|
+
datePublished: new Date('2012-01-01'),
|
|
116
|
+
dateReviewed: new Date('2013-01-01'),
|
|
117
|
+
};
|
|
118
|
+
const el = await fixture(html `
|
|
119
|
+
<tile-list-compact
|
|
120
|
+
.model=${model}
|
|
121
|
+
.sortParam=${{ field: 'reviewdate', direction: 'desc' }}
|
|
122
|
+
>
|
|
123
|
+
</tile-list-compact>
|
|
124
|
+
`);
|
|
125
|
+
const dateColumn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('date');
|
|
126
|
+
expect(dateColumn).to.exist;
|
|
127
|
+
expect((_b = dateColumn === null || dateColumn === void 0 ? void 0 : dateColumn.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Jan 01, 2013');
|
|
128
|
+
});
|
|
129
|
+
});
|
|
31
130
|
//# sourceMappingURL=tile-list-compact.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile-list-compact.test.js","sourceRoot":"","sources":["../../../../test/tiles/list/tile-list-compact.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"tile-list-compact.test.js","sourceRoot":"","sources":["../../../../test/tiles/list/tile-list-compact.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { TileListCompact } from '../../../src/tiles/list/tile-list-compact';\n\nimport '../../../src/tiles/list/tile-list-compact';\nimport type { TileModel } from '../../../src/models';\n\ndescribe('List Tile Compact', () => {\n it('should render initial component', async () => {\n const el = await fixture<TileListCompact>(\n html`<tile-list-compact></tile-list-compact>`\n );\n\n const listContainer = el.shadowRoot?.querySelector('#list-line');\n const itemTitle = el.shadowRoot?.querySelector('#title');\n const imageBlock = el.shadowRoot?.querySelector('image-block');\n const itemIcon = el.shadowRoot?.querySelector('#icon');\n const itemViews = el.shadowRoot?.querySelector('#views');\n\n expect(listContainer).to.exist;\n expect(itemTitle).to.exist;\n expect(imageBlock).to.exist;\n expect(itemIcon).to.exist;\n expect(itemViews).to.exist;\n });\n\n it('should render with creator element with title', async () => {\n const el = await fixture<TileListCompact>(html`\n <tile-list-compact\n .model=${{ creators: ['someone'] }}\n ></tile-list-compact>\n `);\n\n const creator = el.shadowRoot?.querySelector('#creator');\n\n expect(creator).to.exist;\n });\n\n it('should render weekly views when sorting by week', async () => {\n const el = await fixture<TileListCompact>(html`\n <tile-list-compact\n .model=${{ viewCount: 50, weeklyViewCount: 10 }}\n .sortParam=${{ field: 'week', direction: 'desc' }}\n >\n </tile-list-compact>\n `);\n\n const viewsColumn = el.shadowRoot?.getElementById('views');\n expect(viewsColumn).to.exist;\n expect(viewsColumn?.textContent?.trim()).to.equal('10');\n });\n\n it('should render 0 for views if missing model', async () => {\n const el = await fixture<TileListCompact>(html`\n <tile-list-compact .sortParam=${{ field: 'week', direction: 'desc' }}>\n </tile-list-compact>\n `);\n\n const viewsColumn = el.shadowRoot?.getElementById('views');\n expect(viewsColumn).to.exist;\n expect(viewsColumn?.textContent?.trim()).to.equal('0');\n });\n\n it('should render published date when sorting by it', async () => {\n const model: Partial<TileModel> = {\n dateAdded: new Date('2010-01-01'),\n dateArchived: new Date('2011-01-01'),\n datePublished: new Date('2012-01-01'),\n dateReviewed: new Date('2013-01-01'),\n };\n\n const el = await fixture<TileListCompact>(html`\n <tile-list-compact\n .model=${model}\n .sortParam=${{ field: 'date', direction: 'desc' }}\n >\n </tile-list-compact>\n `);\n\n const dateColumn = el.shadowRoot?.getElementById('date');\n expect(dateColumn).to.exist;\n expect(dateColumn?.textContent?.trim()).to.equal('Jan 01, 2012');\n });\n\n it('should render added date when sorting by it', async () => {\n const model: Partial<TileModel> = {\n dateAdded: new Date('2010-01-01'),\n dateArchived: new Date('2011-01-01'),\n datePublished: new Date('2012-01-01'),\n dateReviewed: new Date('2013-01-01'),\n };\n\n const el = await fixture<TileListCompact>(html`\n <tile-list-compact\n .model=${model}\n .sortParam=${{ field: 'addeddate', direction: 'desc' }}\n >\n </tile-list-compact>\n `);\n\n const dateColumn = el.shadowRoot?.getElementById('date');\n expect(dateColumn).to.exist;\n expect(dateColumn?.textContent?.trim()).to.equal('Jan 01, 2010');\n });\n\n it('should render archived date when sorting by it', async () => {\n const model: Partial<TileModel> = {\n dateAdded: new Date('2010-01-01'),\n dateArchived: new Date('2011-01-01'),\n datePublished: new Date('2012-01-01'),\n dateReviewed: new Date('2013-01-01'),\n };\n\n const el = await fixture<TileListCompact>(html`\n <tile-list-compact\n .model=${model}\n .sortParam=${{ field: 'publicdate', direction: 'desc' }}\n >\n </tile-list-compact>\n `);\n\n const dateColumn = el.shadowRoot?.getElementById('date');\n expect(dateColumn).to.exist;\n expect(dateColumn?.textContent?.trim()).to.equal('Jan 01, 2011');\n });\n\n it('should render reviewed date when sorting by it', async () => {\n const model: Partial<TileModel> = {\n dateAdded: new Date('2010-01-01'),\n dateArchived: new Date('2011-01-01'),\n datePublished: new Date('2012-01-01'),\n dateReviewed: new Date('2013-01-01'),\n };\n\n const el = await fixture<TileListCompact>(html`\n <tile-list-compact\n .model=${model}\n .sortParam=${{ field: 'reviewdate', direction: 'desc' }}\n >\n </tile-list-compact>\n `);\n\n const dateColumn = el.shadowRoot?.getElementById('date');\n expect(dateColumn).to.exist;\n expect(dateColumn?.textContent?.trim()).to.equal('Jan 01, 2013');\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../../../src/tiles/list/tile-list';
|
|
1
|
+
import '../../../src/tiles/list/tile-list';
|
|
@@ -1,59 +1,91 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../../../src/tiles/list/tile-list';
|
|
5
|
-
import { MockCollectionNameCache } from '../../mocks/mock-collection-name-cache';
|
|
6
|
-
describe('List Tile', () => {
|
|
7
|
-
it('should render initial component', async () => {
|
|
8
|
-
var _a, _b, _c;
|
|
9
|
-
const el = await fixture(html `<tile-list></tile-list>`);
|
|
10
|
-
const listContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-line');
|
|
11
|
-
const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
|
|
12
|
-
const imageBlock = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('image-block');
|
|
13
|
-
expect(listContainer).to.exist;
|
|
14
|
-
expect(itemTitle).to.exist;
|
|
15
|
-
expect(imageBlock).to.exist;
|
|
16
|
-
});
|
|
17
|
-
it('should render with creator element but not dates', async () => {
|
|
18
|
-
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/list/tile-list';
|
|
5
|
+
import { MockCollectionNameCache } from '../../mocks/mock-collection-name-cache';
|
|
6
|
+
describe('List Tile', () => {
|
|
7
|
+
it('should render initial component', async () => {
|
|
8
|
+
var _a, _b, _c;
|
|
9
|
+
const el = await fixture(html `<tile-list></tile-list>`);
|
|
10
|
+
const listContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-line');
|
|
11
|
+
const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
|
|
12
|
+
const imageBlock = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('image-block');
|
|
13
|
+
expect(listContainer).to.exist;
|
|
14
|
+
expect(itemTitle).to.exist;
|
|
15
|
+
expect(imageBlock).to.exist;
|
|
16
|
+
});
|
|
17
|
+
it('should render with creator element but not dates', async () => {
|
|
18
|
+
var _a, _b;
|
|
19
19
|
const el = await fixture(html `
|
|
20
20
|
<tile-list .model=${{ creators: ['someone'] }}></tile-list>
|
|
21
|
-
`);
|
|
22
|
-
const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#creator');
|
|
23
|
-
const datesLine = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#dates-line');
|
|
24
|
-
expect(creator).to.exist;
|
|
25
|
-
expect(datesLine === null || datesLine === void 0 ? void 0 : datesLine.children.length).to.equal(0);
|
|
26
|
-
});
|
|
27
|
-
it('should render with snippet block when it has snippets', async () => {
|
|
28
|
-
var _a;
|
|
21
|
+
`);
|
|
22
|
+
const creator = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#creator');
|
|
23
|
+
const datesLine = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#dates-line');
|
|
24
|
+
expect(creator).to.exist;
|
|
25
|
+
expect(datesLine === null || datesLine === void 0 ? void 0 : datesLine.children.length).to.equal(0);
|
|
26
|
+
});
|
|
27
|
+
it('should render with snippet block when it has snippets', async () => {
|
|
28
|
+
var _a;
|
|
29
29
|
const el = await fixture(html `
|
|
30
30
|
<tile-list .model=${{ snippets: ['some {{{snippet}}} text'] }}>
|
|
31
31
|
</tile-list>
|
|
32
|
-
`);
|
|
33
|
-
const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
|
|
34
|
-
expect(snippetBlock).to.exist;
|
|
35
|
-
});
|
|
36
|
-
it('should not render snippet block when no snippets are present', async () => {
|
|
37
|
-
var _a;
|
|
38
|
-
const el = await fixture(html `<tile-list></tile-list>`);
|
|
39
|
-
const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
|
|
40
|
-
expect(snippetBlock).to.not.exist;
|
|
41
|
-
});
|
|
42
|
-
it('should not render suppressed collections', async () => {
|
|
43
|
-
var _a;
|
|
44
|
-
const collectionNameCache = new MockCollectionNameCache();
|
|
32
|
+
`);
|
|
33
|
+
const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
|
|
34
|
+
expect(snippetBlock).to.exist;
|
|
35
|
+
});
|
|
36
|
+
it('should not render snippet block when no snippets are present', async () => {
|
|
37
|
+
var _a;
|
|
38
|
+
const el = await fixture(html `<tile-list></tile-list>`);
|
|
39
|
+
const snippetBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('text-snippet-block');
|
|
40
|
+
expect(snippetBlock).to.not.exist;
|
|
41
|
+
});
|
|
42
|
+
it('should not render suppressed collections', async () => {
|
|
43
|
+
var _a;
|
|
44
|
+
const collectionNameCache = new MockCollectionNameCache();
|
|
45
45
|
const el = await fixture(html `
|
|
46
46
|
<tile-list
|
|
47
47
|
.model=${{ collections: ['deemphasize', 'community', 'foo'] }}
|
|
48
48
|
.collectionNameCache=${collectionNameCache}
|
|
49
49
|
>
|
|
50
50
|
</tile-list>
|
|
51
|
-
`);
|
|
52
|
-
const collectionsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('collections');
|
|
53
|
-
expect(collectionsRow).to.exist;
|
|
54
|
-
const collectionLinks = collectionsRow === null || collectionsRow === void 0 ? void 0 : collectionsRow.querySelectorAll('a[href]');
|
|
55
|
-
expect(collectionLinks === null || collectionLinks === void 0 ? void 0 : collectionLinks.length).to.equal(1);
|
|
56
|
-
expect(collectionLinks === null || collectionLinks === void 0 ? void 0 : collectionLinks.item(0).getAttribute('href')).to.equal('/details/foo');
|
|
57
|
-
});
|
|
58
|
-
|
|
51
|
+
`);
|
|
52
|
+
const collectionsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('collections');
|
|
53
|
+
expect(collectionsRow).to.exist;
|
|
54
|
+
const collectionLinks = collectionsRow === null || collectionsRow === void 0 ? void 0 : collectionsRow.querySelectorAll('a[href]');
|
|
55
|
+
expect(collectionLinks === null || collectionLinks === void 0 ? void 0 : collectionLinks.length).to.equal(1);
|
|
56
|
+
expect(collectionLinks === null || collectionLinks === void 0 ? void 0 : collectionLinks.item(0).getAttribute('href')).to.equal('/details/foo');
|
|
57
|
+
});
|
|
58
|
+
it('should render weekly views when sorting by week', async () => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
const el = await fixture(html `
|
|
61
|
+
<tile-list
|
|
62
|
+
.model=${{ viewCount: 50, weeklyViewCount: 10 }}
|
|
63
|
+
.sortParam=${{ field: 'week', direction: 'desc' }}
|
|
64
|
+
>
|
|
65
|
+
</tile-list>
|
|
66
|
+
`);
|
|
67
|
+
const viewsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('views-line');
|
|
68
|
+
expect(viewsRow).to.exist;
|
|
69
|
+
expect((_b = viewsRow === null || viewsRow === void 0 ? void 0 : viewsRow.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Views: 10');
|
|
70
|
+
});
|
|
71
|
+
it('should render added date when sorting by it', async () => {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
const model = {
|
|
74
|
+
dateAdded: new Date('2010-01-01'),
|
|
75
|
+
dateArchived: new Date('2011-01-01'),
|
|
76
|
+
datePublished: new Date('2012-01-01'),
|
|
77
|
+
dateReviewed: new Date('2013-01-01'),
|
|
78
|
+
};
|
|
79
|
+
const el = await fixture(html `
|
|
80
|
+
<tile-list
|
|
81
|
+
.model=${model}
|
|
82
|
+
.sortParam=${{ field: 'addeddate', direction: 'desc' }}
|
|
83
|
+
>
|
|
84
|
+
</tile-list>
|
|
85
|
+
`);
|
|
86
|
+
const dateRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('dates-line');
|
|
87
|
+
expect(dateRow).to.exist;
|
|
88
|
+
expect((_b = dateRow === null || dateRow === void 0 ? void 0 : dateRow.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.contain('Added: Jan 01, 2010');
|
|
89
|
+
});
|
|
90
|
+
});
|
|
59
91
|
//# sourceMappingURL=tile-list.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile-list.test.js","sourceRoot":"","sources":["../../../../test/tiles/list/tile-list.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"tile-list.test.js","sourceRoot":"","sources":["../../../../test/tiles/list/tile-list.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { TileList } from '../../../src/tiles/list/tile-list';\n\nimport '../../../src/tiles/list/tile-list';\nimport { MockCollectionNameCache } from '../../mocks/mock-collection-name-cache';\nimport type { TileModel } from '../../../src/models';\n\ndescribe('List Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<TileList>(html`<tile-list></tile-list>`);\n\n const listContainer = el.shadowRoot?.querySelector('#list-line');\n const itemTitle = el.shadowRoot?.querySelector('#title');\n const imageBlock = el.shadowRoot?.querySelector('image-block');\n\n expect(listContainer).to.exist;\n expect(itemTitle).to.exist;\n expect(imageBlock).to.exist;\n });\n\n it('should render with creator element but not dates', async () => {\n const el = await fixture<TileList>(html`\n <tile-list .model=${{ creators: ['someone'] }}></tile-list>\n `);\n\n const creator = el.shadowRoot?.querySelector('#creator');\n const datesLine = el.shadowRoot?.querySelector('#dates-line');\n\n expect(creator).to.exist;\n expect(datesLine?.children.length).to.equal(0);\n });\n\n it('should render with snippet block when it has snippets', async () => {\n const el = await fixture<TileList>(html`\n <tile-list .model=${{ snippets: ['some {{{snippet}}} text'] }}>\n </tile-list>\n `);\n\n const snippetBlock = el.shadowRoot?.querySelector('text-snippet-block');\n\n expect(snippetBlock).to.exist;\n });\n\n it('should not render snippet block when no snippets are present', async () => {\n const el = await fixture<TileList>(html`<tile-list></tile-list>`);\n\n const snippetBlock = el.shadowRoot?.querySelector('text-snippet-block');\n\n expect(snippetBlock).to.not.exist;\n });\n\n it('should not render suppressed collections', async () => {\n const collectionNameCache = new MockCollectionNameCache();\n const el = await fixture<TileList>(html`\n <tile-list\n .model=${{ collections: ['deemphasize', 'community', 'foo'] }}\n .collectionNameCache=${collectionNameCache}\n >\n </tile-list>\n `);\n\n const collectionsRow = el.shadowRoot?.getElementById('collections');\n expect(collectionsRow).to.exist;\n\n const collectionLinks = collectionsRow?.querySelectorAll('a[href]');\n expect(collectionLinks?.length).to.equal(1);\n expect(collectionLinks?.item(0).getAttribute('href')).to.equal(\n '/details/foo'\n );\n });\n\n it('should render weekly views when sorting by week', async () => {\n const el = await fixture<TileList>(html`\n <tile-list\n .model=${{ viewCount: 50, weeklyViewCount: 10 }}\n .sortParam=${{ field: 'week', direction: 'desc' }}\n >\n </tile-list>\n `);\n\n const viewsRow = el.shadowRoot?.getElementById('views-line');\n expect(viewsRow).to.exist;\n expect(viewsRow?.textContent?.trim()).to.equal('Views: 10');\n });\n\n it('should render added date when sorting by it', async () => {\n const model: Partial<TileModel> = {\n dateAdded: new Date('2010-01-01'),\n dateArchived: new Date('2011-01-01'),\n datePublished: new Date('2012-01-01'),\n dateReviewed: new Date('2013-01-01'),\n };\n\n const el = await fixture<TileList>(html`\n <tile-list\n .model=${model}\n .sortParam=${{ field: 'addeddate', direction: 'desc' }}\n >\n </tile-list>\n `);\n\n const dateRow = el.shadowRoot?.getElementById('dates-line');\n expect(dateRow).to.exist;\n expect(dateRow?.textContent?.trim()).to.contain('Added: Jan 01, 2010');\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { expect } from '@open-wc/testing';
|
|
2
|
-
import { formatCount } from '../../src/utils/format-count';
|
|
3
|
-
const testCount = 805342;
|
|
4
|
-
describe('formatCount', () => {
|
|
5
|
-
it('returns blank when undefined number', () => {
|
|
6
|
-
expect(formatCount(undefined)).to.equal('');
|
|
7
|
-
});
|
|
8
|
-
it('returns blank when negative number', () => {
|
|
9
|
-
expect(formatCount(testCount * -1)).to.equal('');
|
|
10
|
-
});
|
|
11
|
-
it('returns long number when no NumberFormat', () => {
|
|
12
|
-
expect(formatCount(testCount)).to.equal('805,342');
|
|
13
|
-
});
|
|
14
|
-
it('returns short number when short NumberFormat', () => {
|
|
15
|
-
expect(formatCount(testCount, 'short')).to.equal('805K');
|
|
16
|
-
});
|
|
17
|
-
it('returns decimal when value of significant digits < 10', () => {
|
|
18
|
-
expect(formatCount(testCount * 10, 'short', 'long')).to.equal('8.1 million');
|
|
19
|
-
});
|
|
20
|
-
it('returns locale formatted number', () => {
|
|
21
|
-
expect(formatCount(testCount, 'long', 'long', 'de-DE')).to.equal('805.342');
|
|
22
|
-
});
|
|
23
|
-
});
|
|
1
|
+
import { expect } from '@open-wc/testing';
|
|
2
|
+
import { formatCount } from '../../src/utils/format-count';
|
|
3
|
+
const testCount = 805342;
|
|
4
|
+
describe('formatCount', () => {
|
|
5
|
+
it('returns blank when undefined number', () => {
|
|
6
|
+
expect(formatCount(undefined)).to.equal('');
|
|
7
|
+
});
|
|
8
|
+
it('returns blank when negative number', () => {
|
|
9
|
+
expect(formatCount(testCount * -1)).to.equal('');
|
|
10
|
+
});
|
|
11
|
+
it('returns long number when no NumberFormat', () => {
|
|
12
|
+
expect(formatCount(testCount)).to.equal('805,342');
|
|
13
|
+
});
|
|
14
|
+
it('returns short number when short NumberFormat', () => {
|
|
15
|
+
expect(formatCount(testCount, 'short')).to.equal('805K');
|
|
16
|
+
});
|
|
17
|
+
it('returns decimal when value of significant digits < 10', () => {
|
|
18
|
+
expect(formatCount(testCount * 10, 'short', 'long')).to.equal('8.1 million');
|
|
19
|
+
});
|
|
20
|
+
it('returns locale formatted number', () => {
|
|
21
|
+
expect(formatCount(testCount, 'long', 'long', 'de-DE')).to.equal('805.342');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
24
|
//# sourceMappingURL=format-count.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { expect } from '@open-wc/testing';
|
|
2
|
-
import { formatDate } from '../../src/utils/format-date';
|
|
3
|
-
const testDate = new Date(Date.UTC(2020, 11, 9));
|
|
4
|
-
describe('formatDate', () => {
|
|
5
|
-
it('returns blank when undefined date', () => {
|
|
6
|
-
expect(formatDate(undefined)).to.equal('');
|
|
7
|
-
});
|
|
8
|
-
it('returns short date when no DateFormat', () => {
|
|
9
|
-
expect(formatDate(testDate)).to.equal('Dec 2020');
|
|
10
|
-
});
|
|
11
|
-
it('returns long date when long DateFormat', () => {
|
|
12
|
-
expect(formatDate(testDate, 'long')).to.equal('Dec 09, 2020');
|
|
13
|
-
});
|
|
14
|
-
it('returns locale formatted date', () => {
|
|
15
|
-
expect(formatDate(testDate, 'long', 'de-DE')).to.equal('09. Dez. 2020');
|
|
16
|
-
});
|
|
17
|
-
});
|
|
1
|
+
import { expect } from '@open-wc/testing';
|
|
2
|
+
import { formatDate } from '../../src/utils/format-date';
|
|
3
|
+
const testDate = new Date(Date.UTC(2020, 11, 9));
|
|
4
|
+
describe('formatDate', () => {
|
|
5
|
+
it('returns blank when undefined date', () => {
|
|
6
|
+
expect(formatDate(undefined)).to.equal('');
|
|
7
|
+
});
|
|
8
|
+
it('returns short date when no DateFormat', () => {
|
|
9
|
+
expect(formatDate(testDate)).to.equal('Dec 2020');
|
|
10
|
+
});
|
|
11
|
+
it('returns long date when long DateFormat', () => {
|
|
12
|
+
expect(formatDate(testDate, 'long')).to.equal('Dec 09, 2020');
|
|
13
|
+
});
|
|
14
|
+
it('returns locale formatted date', () => {
|
|
15
|
+
expect(formatDate(testDate, 'long', 'de-DE')).to.equal('09. Dez. 2020');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
18
|
//# sourceMappingURL=format-date.test.js.map
|
package/index.html
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en-GB">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<style>
|
|
6
|
-
html {
|
|
7
|
-
font-size: 10px; /* This is to match petabox's base font size */
|
|
8
|
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
body {
|
|
12
|
-
background: #fff;
|
|
13
|
-
color: #2C2C2C;
|
|
14
|
-
}
|
|
15
|
-
</style>
|
|
16
|
-
<script
|
|
17
|
-
src="https://polyfill.archive.org/v3/polyfill.min.js?features=scrollIntoView%2CElement.prototype.scrollIntoView"></script>
|
|
18
|
-
|
|
19
|
-
</head>
|
|
20
|
-
<body>
|
|
21
|
-
<app-root></app-root>
|
|
22
|
-
<script type="module" src="./dist/src/app-root.js"></script>
|
|
23
|
-
</body>
|
|
24
|
-
</html>
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en-GB">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<style>
|
|
6
|
+
html {
|
|
7
|
+
font-size: 10px; /* This is to match petabox's base font size */
|
|
8
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
body {
|
|
12
|
+
background: #fff;
|
|
13
|
+
color: #2C2C2C;
|
|
14
|
+
}
|
|
15
|
+
</style>
|
|
16
|
+
<script
|
|
17
|
+
src="https://polyfill.archive.org/v3/polyfill.min.js?features=scrollIntoView%2CElement.prototype.scrollIntoView"></script>
|
|
18
|
+
|
|
19
|
+
</head>
|
|
20
|
+
<body>
|
|
21
|
+
<app-root></app-root>
|
|
22
|
+
<script type="module" src="./dist/src/app-root.js"></script>
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|