@api-components/http-method-selector
Version:
91 lines (81 loc) • 2.73 kB
HTML
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<link rel="import" href="../http-method-selector.html">
</head>
<body>
<test-fixture id="basic">
<template>
<http-method-selector></http-method-selector>
</template>
</test-fixture>
<script>
function fire(name, detail, node) {
const e = new CustomEvent(name, {
bubbles: true,
composed: true,
cancelable: true,
detail: detail
});
(node || document).dispatchEvent(e);
return e;
}
/* global fixture, assert, sinon */
suite('events', () => {
var element;
setup(() => {
element = fixture('basic');
});
test('request-is-payload-status is handled', () => {
const e = fire('request-is-payload-status', {});
assert.isTrue(e.defaultPrevented);
assert.isFalse(e.detail.value);
});
test('request-method-changed is handled', () => {
fire('request-method-changed', {
value: 'POST'
});
assert.equal(element.method, 'POST');
});
test('request-method-changed does not fire request-method-changed event', () => {
const spy = sinon.stub();
element.addEventListener('request-method-changed', spy);
fire('request-method-changed', {
value: 'POST'
});
assert.isFalse(spy.called);
});
test('request-method-changed is fired for method change', () => {
const spy = sinon.stub();
element.addEventListener('request-method-changed', spy);
element.method = 'POST';
assert.isTrue(spy.calledOnce);
});
test('request-method-changed contains a value', (done) => {
element.addEventListener('request-method-changed', function(e) {
assert.equal(element.method, e.detail.value);
done();
});
element.method = 'POST';
});
test('request-is-payload-changed is fired', () => {
const spy = sinon.stub();
element.addEventListener('request-is-payload-changed', spy);
element.method = 'POST';
assert.isTrue(spy.calledOnce);
});
test('request-is-payload-changed contains a value', (done) => {
element.addEventListener('request-is-payload-changed', function(e) {
assert.isTrue(e.detail.value);
done();
});
element.method = 'POST';
});
});
</script>
</body>
</html>