Skip to content

Commit b4400b6

Browse files
authored
Merge pull request #1355 from UNC-Libraries/show-facet
Don't display empty facets
2 parents 6468267 + 7d6d343 commit b4400b6

File tree

2 files changed

+49
-5
lines changed

2 files changed

+49
-5
lines changed

static/js/vue-cdr-access/src/components/facets.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@
124124
* @returns {boolean|boolean}
125125
*/
126126
showFacetDisplay(facet) {
127-
return facet.name !== 'PARENT_COLLECTION' || (facet.name === 'PARENT_COLLECTION' && !this.routeHasCollectionId);
127+
return facet.values.length > 0 &&
128+
(facet.name !== 'PARENT_COLLECTION' || (facet.name === 'PARENT_COLLECTION' && !this.routeHasCollectionId));
128129
},
129130
130131
/**

static/js/vue-cdr-access/tests/unit/facets.spec.js

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,49 @@ describe('facets.vue', () => {
106106
expect(facets[3].find('a').text()).toBe('png (2)');
107107
});
108108

109+
it("does not display facets with no returned results", () => {
110+
let emptyFacetWrapper = shallowMount(facets, {
111+
global: {
112+
plugins: [router]
113+
},
114+
props: {
115+
facetList: [
116+
{
117+
name: "CONTENT_TYPE",
118+
values: [
119+
{
120+
count: 8,
121+
displayValue: "Image",
122+
limitToValue: "image",
123+
value: "^image,Image",
124+
fieldName: "CONTENT_TYPE"
125+
}
126+
]
127+
},
128+
{
129+
name: "SUBJECT",
130+
values: []
131+
}
132+
]
133+
},
134+
data() {
135+
return {
136+
selected_facets: []
137+
}
138+
}
139+
});
140+
141+
let facet_headers = emptyFacetWrapper.findAll('.facet-display h3');
142+
let facet_list = emptyFacetWrapper.findAll('.facet-display li');
143+
144+
expect(facet_headers[0].text()).toBe('Format');
145+
expect(facet_list[0].find('a').text()).toBe('Image (8)');
146+
147+
expect(facet_headers.length).toBe(1);
148+
expect(facet_list.length).toBe(1);
149+
expect(facet_headers.map((d) => d.text())).not.toContain('Subject');
150+
});
151+
109152
it("displays a listing of selected facets", async () => {
110153
await router.push('/search/?collection=d77fd8c9-744b-42ab-8e20-5ad9bdf8194e');
111154
selected_facet.trigger('click');
@@ -145,17 +188,17 @@ describe('facets.vue', () => {
145188
selected_facet.trigger('click');
146189
await flushPromises();
147190

148-
let facets = wrapper.findAll('.facet-display a');
149-
selected_facet = facets[2];
191+
let facet_list = wrapper.findAll('.facet-display a');
192+
selected_facet = facet_list[2];
150193

151194
expect(selected_facet.html()).toContain('fas fa-times'); // Look for X checkmark
152195
expect(wrapper.vm.selected_facets).toContain('format=image');
153196

154197
// Remove facet
155198
selected_facet.trigger('click');
156199
await flushPromises();
157-
facets = wrapper.findAll('.facet-display a');
158-
selected_facet = facets[2];
200+
facet_list = wrapper.findAll('.facet-display a');
201+
selected_facet = facet_list[2];
159202
expect(selected_facet.html()).not.toContain('fas fa-times'); // Look for X checkmark
160203
expect(wrapper.vm.selected_facets).not.toContain('format=image');
161204
});

0 commit comments

Comments
 (0)