fix: Incorrect precedence render collapsed (#610)
This commit is contained in:
parent
faaa12f9f3
commit
81dc8036e0
|
@ -77,7 +77,9 @@ class BaseReport:
|
|||
|
||||
collapsed = config.getini("render_collapsed")
|
||||
if collapsed:
|
||||
self.set_data("collapsed", collapsed.split(","))
|
||||
self.set_data(
|
||||
"collapsed", [outcome.lower() for outcome in collapsed.split(",")]
|
||||
)
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
|
|
|
@ -64,17 +64,17 @@ const getCollapsedCategory = (config) => {
|
|||
const url = new URL(window.location.href)
|
||||
const collapsedItems = new URLSearchParams(url.search).get('collapsed')
|
||||
switch (true) {
|
||||
case collapsedItems === null:
|
||||
categories = config || ['passed'];
|
||||
case !config && collapsedItems === null:
|
||||
categories = ['passed'];
|
||||
break;
|
||||
case collapsedItems?.length === 0 || /^["']{2}$/.test(collapsedItems):
|
||||
categories = [];
|
||||
break;
|
||||
case /^all$/.test(collapsedItems):
|
||||
case /^all$/.test(collapsedItems) || (collapsedItems === null && /^all$/.test(config)):
|
||||
categories = [...possibleFilters];
|
||||
break;
|
||||
default:
|
||||
categories = collapsedItems?.split(',').map(item => item.toLowerCase()) || [];
|
||||
categories = collapsedItems?.split(',').map(item => item.toLowerCase()) || config;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -727,11 +727,12 @@ class TestCollapsedQueryParam:
|
|||
assert_that(is_collapsed(page, "test_fail")).is_false()
|
||||
assert_that(is_collapsed(page, "test_error::setup")).is_false()
|
||||
|
||||
def test_render_collapsed(self, pytester, test_file):
|
||||
@pytest.mark.parametrize("param", ["failed,error", "FAILED,eRRoR"])
|
||||
def test_render_collapsed(self, pytester, test_file, param):
|
||||
pytester.makeini(
|
||||
"""
|
||||
f"""
|
||||
[pytest]
|
||||
render_collapsed = failed,error
|
||||
render_collapsed = {param}
|
||||
"""
|
||||
)
|
||||
pytester.makepyfile(test_file)
|
||||
|
|
|
@ -195,16 +195,29 @@ describe('Storage tests', () => {
|
|||
expect(collapsedItems).to.eql(['failed', 'error', 'passed'])
|
||||
})
|
||||
|
||||
it('handles python config', () => {
|
||||
mockWindow()
|
||||
const collapsedItems = storageModule.getCollapsedCategory(['failed', 'error'])
|
||||
expect(collapsedItems).to.eql(['failed', 'error'])
|
||||
const config = [
|
||||
{ value: ['failed', 'error'], expected: ['failed', 'error'] },
|
||||
{ value: ['all'], expected: storageModule.possibleFilters }
|
||||
]
|
||||
config.forEach(({value, expected}) => {
|
||||
it(`handles python config: ${value}`, () => {
|
||||
mockWindow()
|
||||
const collapsedItems = storageModule.getCollapsedCategory(value)
|
||||
expect(collapsedItems).to.eql(expected)
|
||||
})
|
||||
})
|
||||
|
||||
it('handles python config precedence', () => {
|
||||
mockWindow('collapsed=xpassed,xfailed')
|
||||
const collapsedItems = storageModule.getCollapsedCategory(['failed', 'error'])
|
||||
expect(collapsedItems).to.eql(['xpassed', 'xfailed'])
|
||||
const precedence = [
|
||||
{query: 'collapsed=xpassed,xfailed', config: ['failed', 'error'], expected: ['xpassed', 'xfailed']},
|
||||
{query: 'collapsed=all', config: ['failed', 'error'], expected: storageModule.possibleFilters},
|
||||
{query: 'collapsed=xpassed,xfailed', config: ['all'], expected: ['xpassed', 'xfailed']},
|
||||
]
|
||||
precedence.forEach(({query, config, expected}, index) => {
|
||||
it(`handles python config precedence ${index + 1}`, () => {
|
||||
mockWindow(query)
|
||||
const collapsedItems = storageModule.getCollapsedCategory(config)
|
||||
expect(collapsedItems).to.eql(expected)
|
||||
})
|
||||
})
|
||||
|
||||
const falsy = [
|
||||
|
|
Loading…
Reference in New Issue