Skip to content

Commit 90e3428

Browse files
committed
fix: Incorrect precedence render collapsed
1 parent faaa12f commit 90e3428

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

src/pytest_html/scripts/storage.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,17 @@ const getCollapsedCategory = (config) => {
6464
const url = new URL(window.location.href)
6565
const collapsedItems = new URLSearchParams(url.search).get('collapsed')
6666
switch (true) {
67-
case collapsedItems === null:
68-
categories = config || ['passed'];
67+
case !config && collapsedItems === null:
68+
categories = ['passed'];
6969
break;
7070
case collapsedItems?.length === 0 || /^["']{2}$/.test(collapsedItems):
7171
categories = [];
7272
break;
73-
case /^all$/.test(collapsedItems):
73+
case /^all$/.test(collapsedItems) || (collapsedItems === null && /^all$/.test(config)):
7474
categories = [...possibleFilters];
7575
break;
7676
default:
77-
categories = collapsedItems?.split(',').map(item => item.toLowerCase()) || [];
77+
categories = collapsedItems?.split(',').map(item => item.toLowerCase()) || config;
7878
break;
7979
}
8080
} else {

testing/unittest.js

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -195,16 +195,29 @@ describe('Storage tests', () => {
195195
expect(collapsedItems).to.eql(['failed', 'error', 'passed'])
196196
})
197197

198-
it('handles python config', () => {
199-
mockWindow()
200-
const collapsedItems = storageModule.getCollapsedCategory(['failed', 'error'])
201-
expect(collapsedItems).to.eql(['failed', 'error'])
198+
const config = [
199+
{ value: ['failed', 'error'], expected: ['failed', 'error'] },
200+
{ value: ['all'], expected: storageModule.possibleFilters }
201+
]
202+
config.forEach(({value, expected}) => {
203+
it(`handles python config: ${value}`, () => {
204+
mockWindow()
205+
const collapsedItems = storageModule.getCollapsedCategory(value)
206+
expect(collapsedItems).to.eql(expected)
207+
})
202208
})
203209

204-
it('handles python config precedence', () => {
205-
mockWindow('collapsed=xpassed,xfailed')
206-
const collapsedItems = storageModule.getCollapsedCategory(['failed', 'error'])
207-
expect(collapsedItems).to.eql(['xpassed', 'xfailed'])
210+
const precedence = [
211+
{query: 'collapsed=xpassed,xfailed', config: ['failed', 'error'], expected: ['xpassed', 'xfailed']},
212+
{query: 'collapsed=all', config: ['failed', 'error'], expected: storageModule.possibleFilters},
213+
{query: 'collapsed=xpassed,xfailed', config: ['all'], expected: ['xpassed', 'xfailed']},
214+
]
215+
precedence.forEach(({query, config, expected}, index) => {
216+
it(`handles python config precedence ${index + 1}`, () => {
217+
mockWindow(query)
218+
const collapsedItems = storageModule.getCollapsedCategory(config)
219+
expect(collapsedItems).to.eql(expected)
220+
})
208221
})
209222

210223
const falsy = [

0 commit comments

Comments
 (0)