fix: Incorrect precedence render collapsed (#610)

This commit is contained in:
Jim Brännlund 2023-04-01 17:12:49 +02:00 committed by GitHub
parent faaa12f9f3
commit 81dc8036e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 16 deletions

View File

@ -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):

View File

@ -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 {

View File

@ -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)

View 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 = [