blob: 050a777bc0e1b1b3502ab924b7eebe027182d1bf [file] [log] [blame]
import './index.js'
import { $$ } from 'common-sk/modules/dom'
let container = document.createElement('div');
document.body.appendChild(container);
afterEach(function() {
container.innerHTML = "";
});
function invertPromise(p) {
return p.then(
(x) => {throw x},
(x) => x
);
};
describe('confirm-dialog-sk', function() {
describe('promise', function() {
it('resolves when OK is clicked', function() {
return window.customElements.whenDefined('confirm-dialog-sk').then(() => {
container.innerHTML = `<confirm-dialog-sk></confirm-dialog-sk>`;
let dialog = container.firstElementChild;
let promise = dialog.open('Testing');
let button = dialog.querySelectorAll('button')[1];
assert.equal(button.textContent, 'OK');
expect(dialog.textContent).to.contain('Testing');
button.click();
// Return the promise and let Mocha check that it resolves.
return promise;
});
});
it('rejects when Cancel is clicked', function() {
return window.customElements.whenDefined('confirm-dialog-sk').then(() => {
container.innerHTML = `<confirm-dialog-sk></confirm-dialog-sk>`;
let dialog = container.firstElementChild;
let promise = dialog.open("Testing");
let button = dialog.querySelectorAll('button')[0];
assert.equal(button.textContent, 'Cancel');
button.click();
return invertPromise(promise);
});
});
});
describe('appearance', function() {
it('sets shown on the inner dialog-sk', function() {
return window.customElements.whenDefined('confirm-dialog-sk').then(() => {
container.innerHTML = `<confirm-dialog-sk></confirm-dialog-sk>`;
let dialog = container.firstElementChild;
assert.equal($$('dialog', dialog).hasAttribute('open'), false);
dialog.open('whatever');
assert.equal($$('dialog', dialog).hasAttribute('open'), true);
});
});
})
});