@internetarchive/collection-browser 0.2.6-alpha1 → 0.2.6-alpha2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/assets/img/icons/no-search-result.d.ts +2 -0
- package/dist/src/assets/img/icons/no-search-result.js +5 -0
- package/dist/src/assets/img/icons/no-search-result.js.map +1 -0
- package/dist/src/assets/img/icons/no-search-term.d.ts +2 -0
- package/dist/src/assets/img/icons/no-search-term.js +5 -0
- package/dist/src/assets/img/icons/no-search-term.js.map +1 -0
- package/dist/src/collection-browser.d.ts +7 -0
- package/dist/src/collection-browser.js +95 -58
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/empty-placeholder.d.ts +9 -0
- package/dist/src/empty-placeholder.js +72 -0
- package/dist/src/empty-placeholder.js.map +1 -0
- package/dist/src/tiles/grid/item-tile.d.ts +0 -5
- package/dist/src/tiles/grid/item-tile.js +10 -55
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.js +0 -1
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/test/collection-browser.test.js +2 -0
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.d.ts +1 -0
- package/dist/test/empty-placeholder.test.js +26 -0
- package/dist/test/empty-placeholder.test.js.map +1 -0
- package/package.json +1 -1
- package/src/assets/img/icons/no-search-result.ts +5 -0
- package/src/assets/img/icons/no-search-term.ts +5 -0
- package/src/collection-browser.ts +103 -61
- package/src/empty-placeholder.ts +70 -0
- package/src/tiles/grid/item-tile.ts +5 -56
- package/src/tiles/tile-dispatcher.ts +0 -1
- package/test/collection-browser.test.ts +3 -0
- package/test/empty-placeholder.test.ts +35 -0
- package/dist/test/tiles/grid/item-tile.test.d.ts +0 -1
- package/dist/test/tiles/grid/item-tile.test.js +0 -96
- package/dist/test/tiles/grid/item-tile.test.js.map +0 -1
- package/test/tiles/grid/item-tile.test.ts +0 -116
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
import { css, CSSResultGroup, html, LitElement, nothing } from 'lit';
|
|
3
3
|
import { customElement, property } from 'lit/decorators.js';
|
|
4
4
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
5
|
-
import { SortParam } from '@internetarchive/search-service';
|
|
6
5
|
|
|
7
|
-
import { formatDate } from '../../utils/format-date';
|
|
8
6
|
import { TileModel } from '../../models';
|
|
9
7
|
|
|
10
8
|
import '../mediatype-icon';
|
|
@@ -17,10 +15,9 @@ export class ItemTile extends LitElement {
|
|
|
17
15
|
|
|
18
16
|
@property({ type: String }) baseImageUrl?: string;
|
|
19
17
|
|
|
20
|
-
@property({ type: Object }) sortParam?: SortParam;
|
|
21
|
-
|
|
22
18
|
render() {
|
|
23
19
|
const itemTitle = this.model?.title;
|
|
20
|
+
const itemCreator = this.model?.creator;
|
|
24
21
|
return html`
|
|
25
22
|
<div class="container">
|
|
26
23
|
<div class="item-info">
|
|
@@ -36,11 +33,9 @@ export class ItemTile extends LitElement {
|
|
|
36
33
|
.baseImageUrl=${this.baseImageUrl}>
|
|
37
34
|
</item-image>
|
|
38
35
|
</div>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
: this.creatorTemplate
|
|
43
|
-
}
|
|
36
|
+
<div class="created-by truncated">
|
|
37
|
+
${itemCreator ? html`<span>by ${itemCreator}</span>` : nothing}
|
|
38
|
+
</div>
|
|
44
39
|
</div>
|
|
45
40
|
|
|
46
41
|
<tile-stats
|
|
@@ -54,51 +49,6 @@ export class ItemTile extends LitElement {
|
|
|
54
49
|
`;
|
|
55
50
|
}
|
|
56
51
|
|
|
57
|
-
private get doesSortedByDate() {
|
|
58
|
-
return ['date', 'reviewdate', 'addeddate', 'publicdate'].includes(
|
|
59
|
-
this.sortParam?.field as string
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
private get sortedDateInfoTemplate() {
|
|
64
|
-
let sortedValue;
|
|
65
|
-
|
|
66
|
-
switch (this.sortParam?.field) {
|
|
67
|
-
case 'date':
|
|
68
|
-
sortedValue = { field: 'published', value: this.model?.datePublished };
|
|
69
|
-
break;
|
|
70
|
-
case 'reviewdate':
|
|
71
|
-
sortedValue = { field: 'reviewed', value: this.model?.dateReviewed };
|
|
72
|
-
break;
|
|
73
|
-
case 'addeddate':
|
|
74
|
-
sortedValue = { field: 'added', value: this.model?.dateAdded };
|
|
75
|
-
break;
|
|
76
|
-
case 'publicdate':
|
|
77
|
-
sortedValue = { field: 'archived', value: this.model?.dateArchived };
|
|
78
|
-
break;
|
|
79
|
-
default:
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return html`
|
|
84
|
-
<div class="date-sorted-by truncated">
|
|
85
|
-
<span>
|
|
86
|
-
${sortedValue?.field} ${formatDate(sortedValue?.value, 'long')}
|
|
87
|
-
</span>
|
|
88
|
-
</div>
|
|
89
|
-
`;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
private get creatorTemplate() {
|
|
93
|
-
return html`
|
|
94
|
-
<div class="created-by truncated">
|
|
95
|
-
${this.model?.creator
|
|
96
|
-
? html`<span>by ${this.model?.creator}</span>`
|
|
97
|
-
: nothing}
|
|
98
|
-
</div>
|
|
99
|
-
`;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
52
|
static get styles(): CSSResultGroup {
|
|
103
53
|
return css`
|
|
104
54
|
.container {
|
|
@@ -139,8 +89,7 @@ export class ItemTile extends LitElement {
|
|
|
139
89
|
text-decoration: underline;
|
|
140
90
|
}
|
|
141
91
|
|
|
142
|
-
.created-by
|
|
143
|
-
.date-sorted-by {
|
|
92
|
+
.created-by {
|
|
144
93
|
display: flex;
|
|
145
94
|
justify-content: center;
|
|
146
95
|
align-items: flex-end; /* Important to start text from bottom */
|
|
@@ -12,6 +12,9 @@ describe('Collection Browser', () => {
|
|
|
12
12
|
html`<collection-browser></collection-browser>`
|
|
13
13
|
);
|
|
14
14
|
|
|
15
|
+
el.baseQuery = 'hello';
|
|
16
|
+
await el.updateComplete;
|
|
17
|
+
|
|
15
18
|
const facets = el.shadowRoot?.querySelector('collection-facets');
|
|
16
19
|
const sortBar = el.shadowRoot?.querySelector('sort-filter-bar');
|
|
17
20
|
const infiniteScroller = el.shadowRoot?.querySelector('infinite-scroller');
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import { EmptyPlaceholder } from '../src/empty-placeholder';
|
|
5
|
+
import '../src/empty-placeholder';
|
|
6
|
+
|
|
7
|
+
describe('Empty Placeholder', () => {
|
|
8
|
+
it('should render with no-search-term placeholder', async () => {
|
|
9
|
+
const el = await fixture<EmptyPlaceholder>(
|
|
10
|
+
html`<empty-placeholder></empty-placeholder>`
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
el.placeholderType = 'no-search-term';
|
|
14
|
+
await el.updateComplete;
|
|
15
|
+
|
|
16
|
+
const notSearchTerm = el.shadowRoot?.querySelector('.no-term');
|
|
17
|
+
const infiniteScroller = el.shadowRoot?.querySelector('infinite-scroller');
|
|
18
|
+
|
|
19
|
+
expect(notSearchTerm).to.exist;
|
|
20
|
+
expect(infiniteScroller).to.not.exist;
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('should render with no-search-result placeholder', async () => {
|
|
24
|
+
const el = await fixture<EmptyPlaceholder>(
|
|
25
|
+
html`<empty-placeholder></empty-placeholder>`
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
el.placeholderType = 'no-search-result';
|
|
29
|
+
await el.updateComplete;
|
|
30
|
+
|
|
31
|
+
expect(el.shadowRoot?.querySelector('.no-result')).to.exist;
|
|
32
|
+
expect(el.shadowRoot?.querySelector('.no-term')).to.not.exist;
|
|
33
|
+
expect(el.shadowRoot?.querySelector('collection-facets')).to.not.exist;
|
|
34
|
+
});
|
|
35
|
+
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import '../../../src/tiles/grid/item-tile';
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import '../../../src/tiles/grid/item-tile';
|
|
5
|
-
describe('Item Tile', () => {
|
|
6
|
-
it('should render initial component', async () => {
|
|
7
|
-
var _a, _b, _c;
|
|
8
|
-
const el = await fixture(html `<item-tile></item-tile>`);
|
|
9
|
-
const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
|
|
10
|
-
const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
|
|
11
|
-
const itemTitle = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#title');
|
|
12
|
-
expect(itemInfo).to.exist;
|
|
13
|
-
expect(itemImage).to.exist;
|
|
14
|
-
expect(itemTitle).to.exist;
|
|
15
|
-
});
|
|
16
|
-
it('should render with created-by element', async () => {
|
|
17
|
-
var _a, _b, _c;
|
|
18
|
-
const el = await fixture(html `<item-tile></item-tile>`);
|
|
19
|
-
const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
|
|
20
|
-
const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
|
|
21
|
-
const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
|
|
22
|
-
expect(itemInfo).to.exist;
|
|
23
|
-
expect(createdBy).to.exist;
|
|
24
|
-
expect(dateSortedBy).to.not.exist;
|
|
25
|
-
});
|
|
26
|
-
it('should not render with created-by but date element', async () => {
|
|
27
|
-
var _a, _b;
|
|
28
|
-
const el = await fixture(html `<item-tile></item-tile>`);
|
|
29
|
-
el.sortParam = {
|
|
30
|
-
field: 'date',
|
|
31
|
-
direction: 'desc',
|
|
32
|
-
};
|
|
33
|
-
await el.updateComplete;
|
|
34
|
-
const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
|
|
35
|
-
const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
|
|
36
|
-
expect(createdBy).to.not.exist;
|
|
37
|
-
expect(dateSortedBy).to.exist;
|
|
38
|
-
});
|
|
39
|
-
it('should not render with created-by but reviewdate element', async () => {
|
|
40
|
-
var _a, _b;
|
|
41
|
-
const el = await fixture(html `<item-tile></item-tile>`);
|
|
42
|
-
el.sortParam = {
|
|
43
|
-
field: 'reviewdate',
|
|
44
|
-
direction: 'desc',
|
|
45
|
-
};
|
|
46
|
-
await el.updateComplete;
|
|
47
|
-
const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
|
|
48
|
-
const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
|
|
49
|
-
expect(createdBy).to.not.exist;
|
|
50
|
-
expect(dateSortedBy).to.exist;
|
|
51
|
-
});
|
|
52
|
-
it('should not render with created-by but publicdate element', async () => {
|
|
53
|
-
var _a, _b;
|
|
54
|
-
const el = await fixture(html `<item-tile></item-tile>`);
|
|
55
|
-
el.sortParam = {
|
|
56
|
-
field: 'publicdate',
|
|
57
|
-
direction: 'desc',
|
|
58
|
-
};
|
|
59
|
-
await el.updateComplete;
|
|
60
|
-
const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
|
|
61
|
-
const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
|
|
62
|
-
expect(createdBy).to.not.exist;
|
|
63
|
-
expect(dateSortedBy).to.exist;
|
|
64
|
-
});
|
|
65
|
-
it('should render with created-by when sorting not related to date', async () => {
|
|
66
|
-
var _a, _b, _c;
|
|
67
|
-
const el = await fixture(html `<item-tile></item-tile>`);
|
|
68
|
-
el.sortParam = {
|
|
69
|
-
field: 'addeddate',
|
|
70
|
-
direction: 'asc',
|
|
71
|
-
};
|
|
72
|
-
await el.updateComplete;
|
|
73
|
-
const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
|
|
74
|
-
const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
|
|
75
|
-
const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
|
|
76
|
-
expect(itemInfo).to.exist;
|
|
77
|
-
expect(createdBy).to.not.exist;
|
|
78
|
-
expect(dateSortedBy).to.exist;
|
|
79
|
-
});
|
|
80
|
-
it('should render with created-by when sort field id not like date', async () => {
|
|
81
|
-
var _a, _b, _c;
|
|
82
|
-
const el = await fixture(html `<item-tile></item-tile>`);
|
|
83
|
-
el.sortParam = {
|
|
84
|
-
field: 'week',
|
|
85
|
-
direction: 'asc',
|
|
86
|
-
};
|
|
87
|
-
await el.updateComplete;
|
|
88
|
-
const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
|
|
89
|
-
const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
|
|
90
|
-
const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
|
|
91
|
-
expect(itemInfo).to.exist;
|
|
92
|
-
expect(dateSortedBy).to.not.exist; // it should be exist because this is not related to date sort
|
|
93
|
-
expect(createdBy).to.exist;
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
//# sourceMappingURL=item-tile.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item-tile.test.js","sourceRoot":"","sources":["../../../../test/tiles/grid/item-tile.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 { ItemTile } from '../../../src/tiles/grid/item-tile';\n\nimport '../../../src/tiles/grid/item-tile';\n\ndescribe('Item Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemImage = el.shadowRoot?.querySelector('item-image');\n const itemTitle = el.shadowRoot?.querySelector('#title');\n\n expect(itemInfo).to.exist;\n expect(itemImage).to.exist;\n expect(itemTitle).to.exist;\n });\n\n it('should render with created-by element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(itemInfo).to.exist;\n expect(createdBy).to.exist;\n expect(dateSortedBy).to.not.exist;\n });\n\n it('should not render with created-by but date element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'date',\n direction: 'desc',\n };\n await el.updateComplete;\n\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should not render with created-by but reviewdate element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'reviewdate',\n direction: 'desc',\n };\n await el.updateComplete;\n\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should not render with created-by but publicdate element', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'publicdate',\n direction: 'desc',\n };\n await el.updateComplete;\n\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should render with created-by when sorting not related to date', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'addeddate',\n direction: 'asc',\n };\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(itemInfo).to.exist;\n expect(createdBy).to.not.exist;\n expect(dateSortedBy).to.exist;\n });\n\n it('should render with created-by when sort field id not like date', async () => {\n const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);\n\n el.sortParam = {\n field: 'week',\n direction: 'asc',\n };\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const createdBy = el.shadowRoot?.querySelector('.created-by');\n const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');\n\n expect(itemInfo).to.exist;\n expect(dateSortedBy).to.not.exist; // it should be exist because this is not related to date sort\n expect(createdBy).to.exist;\n });\n});\n"]}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
|
-
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
-
import { html } from 'lit';
|
|
4
|
-
import { ItemTile } from '../../../src/tiles/grid/item-tile';
|
|
5
|
-
|
|
6
|
-
import '../../../src/tiles/grid/item-tile';
|
|
7
|
-
|
|
8
|
-
describe('Item Tile', () => {
|
|
9
|
-
it('should render initial component', async () => {
|
|
10
|
-
const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
|
|
11
|
-
|
|
12
|
-
const itemInfo = el.shadowRoot?.querySelector('.item-info');
|
|
13
|
-
const itemImage = el.shadowRoot?.querySelector('item-image');
|
|
14
|
-
const itemTitle = el.shadowRoot?.querySelector('#title');
|
|
15
|
-
|
|
16
|
-
expect(itemInfo).to.exist;
|
|
17
|
-
expect(itemImage).to.exist;
|
|
18
|
-
expect(itemTitle).to.exist;
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('should render with created-by element', async () => {
|
|
22
|
-
const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
|
|
23
|
-
|
|
24
|
-
const itemInfo = el.shadowRoot?.querySelector('.item-info');
|
|
25
|
-
const createdBy = el.shadowRoot?.querySelector('.created-by');
|
|
26
|
-
const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
|
|
27
|
-
|
|
28
|
-
expect(itemInfo).to.exist;
|
|
29
|
-
expect(createdBy).to.exist;
|
|
30
|
-
expect(dateSortedBy).to.not.exist;
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('should not render with created-by but date element', async () => {
|
|
34
|
-
const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
|
|
35
|
-
|
|
36
|
-
el.sortParam = {
|
|
37
|
-
field: 'date',
|
|
38
|
-
direction: 'desc',
|
|
39
|
-
};
|
|
40
|
-
await el.updateComplete;
|
|
41
|
-
|
|
42
|
-
const createdBy = el.shadowRoot?.querySelector('.created-by');
|
|
43
|
-
const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
|
|
44
|
-
|
|
45
|
-
expect(createdBy).to.not.exist;
|
|
46
|
-
expect(dateSortedBy).to.exist;
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('should not render with created-by but reviewdate element', async () => {
|
|
50
|
-
const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
|
|
51
|
-
|
|
52
|
-
el.sortParam = {
|
|
53
|
-
field: 'reviewdate',
|
|
54
|
-
direction: 'desc',
|
|
55
|
-
};
|
|
56
|
-
await el.updateComplete;
|
|
57
|
-
|
|
58
|
-
const createdBy = el.shadowRoot?.querySelector('.created-by');
|
|
59
|
-
const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
|
|
60
|
-
|
|
61
|
-
expect(createdBy).to.not.exist;
|
|
62
|
-
expect(dateSortedBy).to.exist;
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
it('should not render with created-by but publicdate element', async () => {
|
|
66
|
-
const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
|
|
67
|
-
|
|
68
|
-
el.sortParam = {
|
|
69
|
-
field: 'publicdate',
|
|
70
|
-
direction: 'desc',
|
|
71
|
-
};
|
|
72
|
-
await el.updateComplete;
|
|
73
|
-
|
|
74
|
-
const createdBy = el.shadowRoot?.querySelector('.created-by');
|
|
75
|
-
const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
|
|
76
|
-
|
|
77
|
-
expect(createdBy).to.not.exist;
|
|
78
|
-
expect(dateSortedBy).to.exist;
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it('should render with created-by when sorting not related to date', async () => {
|
|
82
|
-
const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
|
|
83
|
-
|
|
84
|
-
el.sortParam = {
|
|
85
|
-
field: 'addeddate',
|
|
86
|
-
direction: 'asc',
|
|
87
|
-
};
|
|
88
|
-
await el.updateComplete;
|
|
89
|
-
|
|
90
|
-
const itemInfo = el.shadowRoot?.querySelector('.item-info');
|
|
91
|
-
const createdBy = el.shadowRoot?.querySelector('.created-by');
|
|
92
|
-
const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
|
|
93
|
-
|
|
94
|
-
expect(itemInfo).to.exist;
|
|
95
|
-
expect(createdBy).to.not.exist;
|
|
96
|
-
expect(dateSortedBy).to.exist;
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
it('should render with created-by when sort field id not like date', async () => {
|
|
100
|
-
const el = await fixture<ItemTile>(html`<item-tile></item-tile>`);
|
|
101
|
-
|
|
102
|
-
el.sortParam = {
|
|
103
|
-
field: 'week',
|
|
104
|
-
direction: 'asc',
|
|
105
|
-
};
|
|
106
|
-
await el.updateComplete;
|
|
107
|
-
|
|
108
|
-
const itemInfo = el.shadowRoot?.querySelector('.item-info');
|
|
109
|
-
const createdBy = el.shadowRoot?.querySelector('.created-by');
|
|
110
|
-
const dateSortedBy = el.shadowRoot?.querySelector('.date-sorted-by');
|
|
111
|
-
|
|
112
|
-
expect(itemInfo).to.exist;
|
|
113
|
-
expect(dateSortedBy).to.not.exist; // it should be exist because this is not related to date sort
|
|
114
|
-
expect(createdBy).to.exist;
|
|
115
|
-
});
|
|
116
|
-
});
|