blob: e2cd64115919254ba5263686e47e26d7228da16c [file] [log] [blame]
import './index.js'
let container = document.createElement('div');
document.body.appendChild(container);
afterEach(function() {
container.innerHTML = '';
});
function _regexSetup() {
return window.customElements.whenDefined('query-values-sk').then(() => {
container.innerHTML = `<query-values-sk></query-values-sk>`;
let q = container.querySelector('query-values-sk');
q.options = ['x86', 'arm'];
q.selected = ['~ar'];
return q;
});
}
function _normalSetup() {
return window.customElements.whenDefined('query-values-sk').then(() => {
container.innerHTML = `<query-values-sk></query-values-sk>`;
let q = container.querySelector('query-values-sk');
q.options = ['x86', 'arm'];
q.selected = ['arm'];
return q;
});
}
function _invertSetup() {
return window.customElements.whenDefined('query-values-sk').then(() => {
container.innerHTML = `<query-values-sk></query-values-sk>`;
let q = container.querySelector('query-values-sk');
q.options = ['x86', 'arm'];
q.selected = ['!arm'];
return q;
});
}
describe('query-values-sk', function() {
describe('event', function() {
it('toggles a regex correctly on invert click', function() {
return _regexSetup().then((q) => {
assert.isTrue(q.querySelector('#regex').checked);
let value = 'Unfired';
q.addEventListener('query-values-changed', (e) => { value = e.detail; });
q.querySelector('#invert').click();
assert.deepEqual([], value, 'Event was sent.');
// Regex and Invert are mutually exclusive.
assert.isFalse(q.querySelector('#regex').checked, 'Regex checkbox is unchecked.');
assert.isTrue(q.querySelector('#invert').checked);
});
});
it('toggles a regex correctly for regex click', function() {
return _regexSetup().then((q) => {
assert.isTrue(q.querySelector('#regex').checked);
let value = 'Unfired';
q.addEventListener('query-values-changed', (e) => { value = e.detail; });
q.querySelector('#regex').click();
assert.deepEqual([], value, 'Event was sent.');
assert.isFalse(q.querySelector('#regex').checked, 'Regex is unchecked');
assert.isFalse(q.querySelector('#invert').checked, 'Invert stays unchecked');
// No go back to regex.
q.querySelector('#regex').click();
assert.deepEqual(['~ar'], value, 'Event was sent.');
assert.isTrue(q.querySelector('#regex').checked, 'Regex is checked');
assert.isFalse(q.querySelector('#invert').checked, 'Invert stays unchecked');
});
});
it('is toggles invert correctly for invert click', function() {
return _normalSetup().then((q) => {
assert.isFalse(q.querySelector('#regex').checked);
assert.isFalse(q.querySelector('#invert').checked);
let value = 'Unfired';
q.addEventListener('query-values-changed', (e) => { value = e.detail; });
q.querySelector('#invert').click();
assert.deepEqual(['!arm'], value, 'Event was sent.');
assert.isFalse(q.querySelector('#regex').checked);
assert.isTrue(q.querySelector('#invert').checked);
q.querySelector('#invert').click();
assert.deepEqual(['arm'], value, 'Event was sent.');
assert.isFalse(q.querySelector('#regex').checked);
assert.isFalse(q.querySelector('#invert').checked);
});
});
it('is toggles correctly for invert click when starting inverted', function() {
return _invertSetup().then((q) => {
assert.isFalse(q.querySelector('#regex').checked);
assert.isTrue(q.querySelector('#invert').checked);
let value = 'Unfired';
q.addEventListener('query-values-changed', (e) => { value = e.detail; });
q.querySelector('#invert').click();
assert.deepEqual(['arm'], value, 'Event was sent.');
assert.isFalse(q.querySelector('#regex').checked);
assert.isFalse(q.querySelector('#invert').checked);
q.querySelector('#invert').click();
assert.deepEqual(['!arm'], value, 'Event was sent.');
assert.isFalse(q.querySelector('#regex').checked);
assert.isTrue(q.querySelector('#invert').checked);
});
});
it('is sends right event when value is clicked', function() {
return _invertSetup().then((q) => {
assert.isFalse(q.querySelector('#regex').checked);
assert.isTrue(q.querySelector('#invert').checked);
let value = 'Unfired';
q.addEventListener('query-values-changed', (e) => { value = e.detail; });
q.querySelector('#values').children[0].click();
assert.deepEqual(['!x86', '!arm'], value, 'Event was sent.');
q.querySelector('#invert').click();
assert.deepEqual(['x86', 'arm'], value, 'Event was sent.');
assert.isFalse(q.querySelector('#regex').checked);
assert.isFalse(q.querySelector('#invert').checked);
});
});
});
});