Skip to content

Commit 8a4ece4

Browse files
authored
Feature: Only one collapsed state (#701)
1 parent d7301b7 commit 8a4ece4

File tree

8 files changed

+16
-36
lines changed

8 files changed

+16
-36
lines changed

src/layout/css/style.scss

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,6 @@ div.media {
182182
flex: 0 0 25px;
183183
align-items: center;
184184
}
185-
.collapsed {
186-
display: none;
187-
}
188185

189186
@mixin rowToggle {
190187
color: #bbb;
@@ -199,25 +196,25 @@ div.media {
199196
}
200197
}
201198

202-
.col-result.collapser {
199+
.col-result {
203200
&:hover::after {
204201
content: ' (hide details)';
205202
}
206203
}
207-
.col-result.expander {
204+
.col-result.collapsed {
208205
&:hover::after {
209206
content: ' (show details)';
210207
}
211208
}
212209

213-
#environment-header.collapser h2 {
210+
#environment-header h2 {
214211
&:hover::after {
215212
content: ' (hide details)';
216213
@include rowToggle;
217214
font-size: $font-size-text;
218215
}
219216
}
220-
#environment-header.expander h2 {
217+
#environment-header.collapsed h2 {
221218
&:hover::after {
222219
content: ' (show details)';
223220
@include rowToggle;

src/pytest_html/resources/index.jinja2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<h1 id="title">{{ title }}</h1>
1616
<p>Report generated on {{ date }} at {{ time }} by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a>
1717
v{{ version }}</p>
18-
<div id="environment-header" class="collapser">
18+
<div id="environment-header">
1919
<h2>Environment</h2>
2020
</div>
2121
<table id="environment"></table>

src/pytest_html/resources/style.css

Lines changed: 4 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/pytest_html/scripts/dom.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ const dom = {
5050
t.innerHTML = html
5151
resultBody.querySelector('.collapsible').appendChild(t.content)
5252
})
53-
resultBody.querySelector('.collapsible > td')?.classList.add(`${collapsed ? 'expander' : 'collapser'}`)
5453

5554
if (log) {
5655
// Wrap lines starting with "E" with span.error to color those lines red
@@ -61,7 +60,10 @@ const dom = {
6160
}
6261

6362
if (collapsed) {
63+
resultBody.querySelector('.collapsible > td')?.classList.add('collapsed')
6464
resultBody.querySelector('.extras-row').classList.add('hidden')
65+
} else {
66+
resultBody.querySelector('.collapsible > td')?.classList.remove('collapsed')
6567
}
6668

6769
const media = []

src/pytest_html/scripts/main.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ const bindEvents = () => {
8080
header.addEventListener('click', () => {
8181
const table = document.getElementById('environment')
8282
table.classList.toggle('hidden')
83-
header.classList.toggle('collapser')
84-
header.classList.toggle('expander')
83+
header.classList.toggle('collapsed')
8584
})
8685

8786
findAll('input[name="filter_checkbox"]').forEach((elem) => {

src/pytest_html/scripts/storage.js

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,15 @@ const showCategory = (categoryToShow) => {
3838
return
3939
}
4040
const url = new URL(window.location.href)
41-
const currentVisible = new URLSearchParams(url.search).get('visible')?.split(',') || [...possibleFilters]
41+
const currentVisible = new URLSearchParams(url.search).get('visible')?.split(',').filter(Boolean) ||
42+
[...possibleFilters]
4243
const settings = [...new Set([categoryToShow, ...currentVisible])]
4344
const noFilter = possibleFilters.length === settings.length || !settings.length
4445

4546
noFilter ? url.searchParams.delete('visible') : url.searchParams.set('visible', settings.join(','))
4647
history.pushState({}, null, unescape(url.href))
4748
}
4849

49-
const setFilter = (currentFilter) => {
50-
if (!possibleFilters.includes(currentFilter)) {
51-
return
52-
}
53-
const url = new URL(window.location.href)
54-
const settings = [currentFilter, ...new Set(new URLSearchParams(url.search).get('filter').split(','))]
55-
56-
url.searchParams.set('filter', settings)
57-
history.pushState({}, null, unescape(url.href))
58-
}
59-
6050
const getSort = (initialSort) => {
6151
const url = new URL(window.location.href)
6252
let sort = new URLSearchParams(url.search).get('sort')
@@ -103,7 +93,6 @@ const setSortDirection = (ascending) => sessionStorage.setItem('sortAsc', ascend
10393

10494
module.exports = {
10595
getVisible,
106-
setFilter,
10796
hideCategory,
10897
showCategory,
10998
getSort,

testing/test_integration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def get_text(page, selector):
8888

8989

9090
def is_collapsed(page, test_name):
91-
return get_element(page, f".summary tbody[id$='{test_name}'] .expander")
91+
return get_element(page, f".summary tbody[id$='{test_name}'] .collapsed")
9292

9393

9494
def get_log(page, test_id=None):

testing/unittest.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,8 @@ describe('Filter tests', () => {
7676
})
7777
})
7878
describe('doFilter', () => {
79-
let setFilterMock
80-
afterEach(() => setFilterMock.restore())
8179
it('removes all but passed', () => {
8280
getFilterMock = sinon.stub(storageModule, 'getVisible').returns(['passed'])
83-
setFilterMock = sinon.stub(storageModule, 'setFilter')
8481
managerSpy = sinon.spy(dataModule.manager, 'setRender')
8582

8683
doFilter('passed', true)

0 commit comments

Comments
 (0)