Skip to content

Commit

Permalink
W-10556766 Array response cannot be focused (#9)
Browse files Browse the repository at this point in the history
* Add focus behavior on the response array + test

* Code review

* 0.3.9
  • Loading branch information
alexpmule committed Feb 16, 2022
1 parent 6028096 commit 0b3e202
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 5 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@advanced-rest-client/arc-response",
"description": "A module containing the UI regions and the logic to render and support HTTP response in Advanced REST Client.",
"version": "0.3.8",
"version": "0.3.9",
"license": "Apache-2.0",
"main": "index.js",
"module": "index.js",
Expand Down
2 changes: 1 addition & 1 deletion src/lib/PrismFolding.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Prism.hooks.add('brace-complete', (env) => {
}
code.classList.add('toggle-padding');
nodes.forEach((node) => {
const target = document.createElement('span');
const target = document.createElement('button');
target.classList.add('toggle-target');
target.classList.add('opened');
target.title = 'Toggle visibility';
Expand Down
6 changes: 6 additions & 0 deletions src/styles/Highlight.styles.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ pre {
}
.toggle-target {
all: unset;
position: absolute;
width: 12px;
height: 12px;
Expand All @@ -73,6 +74,11 @@ pre {
margin-top: 0.2rem;
}
.toggle-target:focus {
border: 1px solid rgb(0 95 204);
box-shadow: 0px 0px 1px 0px rgb(0 88 200 / 87%);
}
.toggle-target::before {
content: '+';
}
Expand Down
28 changes: 26 additions & 2 deletions test/ResponseHighlightElement.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ describe('ResponseHighlightElement', () => {
await aTimeout(0);
const compare =
'<code class="language- toggle-padding" id="output">' +
'<span class="toggle-target opened" title="Toggle visibility" aria-label="Activate to toggle visibility of the lines"></span>' +
'<button class="toggle-target opened" title="Toggle visibility" aria-label="Activate to toggle visibility of the lines"></button>' +
'<span class="token punctuation brace-curly brace-open brace-level-1" id="pair-0-close" data-open="pair-0-open">{</span>' +
'<span class="token property">"test"</span><span class="token operator">:</span> <span class="token boolean">true</span>' +
'<span class="token punctuation brace-curly brace-close brace-level-1" id="pair-0-open" data-close="pair-0-close">}</span>' +
Expand Down Expand Up @@ -287,12 +287,36 @@ describe('ResponseHighlightElement', () => {
await aTimeout(0);
const compare =
'<code class="language- toggle-padding" id="output">' +
'<span class="toggle-target opened" title="Toggle visibility" aria-label="Activate to toggle visibility of the lines"></span>' +
'<button class="toggle-target opened" title="Toggle visibility" aria-label="Activate to toggle visibility of the lines"></button>' +
'<span class="token punctuation brace-curly brace-open brace-level-1" id="pair-0-close" data-open="pair-0-open">{</span>' +
'<span class="token property">"test"</span><span class="token operator">:</span> <span class="token boolean">true</span>' +
'<span class="token punctuation brace-curly brace-close brace-level-1" id="pair-0-open" data-close="pair-0-close">}</span>' +
'</code>';
assert.dom.equal(element[outputElement], compare, { ignoreAttributes: ['aria-label'] });
});
});

describe('test toggle button in code viewer', () => {
beforeEach(() => {
// @ts-ignore
Prism.plugins.matchBraces.resetIndex();
});

it("should remove and add class on toggle button", async () => {
const element = await jsonNpFixture();
await aTimeout(0);
const button = /** @type HTMLElement */ (
element[outputElement].querySelector(".toggle-target")
);

// @ts-ignore
assert.equal(button.classList, "toggle-target opened");
button.click();
// @ts-ignore
assert.equal(button.classList, "toggle-target");
button.click();
// @ts-ignore
assert.equal(button.classList, "toggle-target opened");
});
});
});

0 comments on commit 0b3e202

Please sign in to comment.