Skip to content

Commit 16202a4

Browse files
test(FormControl): add vanilla tests
1 parent f70f4d4 commit 16202a4

12 files changed

+135
-33
lines changed

.eslintrc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module.exports = {
33
parser: '@typescript-eslint/parser',
44
parserOptions: {
55
tsconfigRootDir: __dirname,
6-
project: ['./tsconfig.json', './packages/*/core/tsconfig.json']
6+
project: ['./tsconfig.json', './packages/**/tsconfig.json']
77
},
88
plugins: ['simple-import-sort', '@typescript-eslint'],
99
extends: [

.prettierignore

+1-13
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,4 @@
11
node_modules
22
coverage/
3-
/packages/create/src/generators/*/templates/**/*
4-
dist
5-
tsc-dist
6-
stats.html
7-
packages/semantic-dom-diff/bundle/get-diffable-html.js
8-
packages/**/test-node/**/snapshots
9-
/packages/demoing-storybook/storybook-static/**/*
10-
/packages/rollup-plugin-input-html/test/fixtures/**/*
11-
/packages/rollup-plugin-html/dist/**/*
12-
/packages/testing/plugins/**/*
3+
lib
134
CHANGELOG.md
14-
__snapshots__/
15-
_site/
16-
_site-dev/

packages/form-control/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
"scripts": {
77
"build": "tsc --project tsconfig.build.json",
88
"start": "web-dev-server --node-resolve --watch",
9-
"test": "web-test-runner test-web/*.test.ts --node-resolve --coverage",
10-
"test:playwright": "web-test-runner test-web/*.test.ts --node-resolve --playwright --browsers chromium firefox webkit"
9+
"test": "web-test-runner tests/*.test.ts --node-resolve --coverage",
10+
"test:playwright": "web-test-runner tests/*.test.ts --node-resolve --playwright --browsers chromium firefox webkit"
1111
},
1212
"author": "Caleb D. Williams <[email protected]>",
1313
"license": "MIT",

packages/form-control/src/FormControlMixin.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@ export function FormControlMixin<T extends Constructor<HTMLElement & IControlHos
6969
/**
7070
* The element that will receive focus when the control's validity
7171
* state is reported either by a form submission or via API
72+
*
73+
* We use declare since this is optional and we don't particularly
74+
* care how the consuming component implements this (as a field, member
75+
* or getter/setter)
7276
*/
73-
validationTarget: HTMLElement | null = null;
77+
declare validationTarget: HTMLElement | null;
7478

7579
/**
7680
* The controls' form value. As this property is updated, the form value

packages/form-control/src/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export type Constructor<T = {}> = new (...args: any[]) => T;
66
/** Interface of exported FormControl behavior */
77
export interface FormControlInterface {
88
checked?: boolean;
9-
validationTarget?: HTMLElement;
9+
validationTarget?: HTMLElement | null;
1010
value: any;
1111
readonly form: HTMLFormElement;
1212
readonly internals: IElementInternals;
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { FormControlMixin } from "../src";
2+
3+
export class NativeFormControl extends FormControlMixin(HTMLElement) {}
4+
5+
export class ValueSet extends NativeFormControl {
6+
constructor() {
7+
super();
8+
const root = this.attachShadow({ mode: 'open' });
9+
const validationTarget = document.createElement('div');
10+
validationTarget.tabIndex = 0;
11+
root.append(validationTarget);
12+
}
13+
14+
get validationTarget(): HTMLDivElement {
15+
return this.shadowRoot!.querySelector<HTMLDivElement>('div')!;
16+
}
17+
}
18+
19+
export class ValueSetChecked extends ValueSet {
20+
checked = false;
21+
}
+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
import { expect, fixture, fixtureCleanup, html } from '@open-wc/testing';
2+
import { ValueSet, ValueSetChecked } from './elements';
3+
4+
window.customElements.define('value-set', ValueSet);
5+
window.customElements.define('value-set-checked', ValueSetChecked);
6+
7+
describe('The FormControlMixin using LitElement', () => {
8+
let form: HTMLFormElement;
9+
let el: ValueSet;
10+
let elChecked: ValueSetChecked;
11+
12+
beforeEach(async () => {
13+
form = await fixture<HTMLFormElement>(html`
14+
<form>
15+
<value-set
16+
name="formControl"
17+
></value-set>
18+
<value-set-checked
19+
name="formControlChecked"
20+
></value-set-checked>
21+
</form>
22+
`);
23+
24+
el = form.querySelector<ValueSet>('value-set')!;
25+
elChecked = form.querySelector<ValueSetChecked>('value-set-checked')!;
26+
});
27+
28+
afterEach(fixtureCleanup);
29+
30+
describe('no checked prperty', () => {
31+
it('will intialize without a value', async () => {
32+
const data = new FormData(form);
33+
expect(data.get('formControl')).to.be.null;
34+
});
35+
36+
it('will set the value on the form when the host value is set', async () => {
37+
el.value = 'foo';
38+
const data = new FormData(form);
39+
expect(data.get('formControl')).to.equal('foo');
40+
});
41+
});
42+
43+
describe('with a checked property', () => {
44+
it('will intialize without a value', async () => {
45+
const data = new FormData(form);
46+
expect(data.get('formControlChecked')).to.be.null;
47+
});
48+
49+
it('will not participate if checked is false', async () => {
50+
elChecked.value = 'foo';
51+
const data = new FormData(form);
52+
expect(data.get('formControlChecked')).to.be.null;
53+
});
54+
55+
it('will participate if checked is true', async () => {
56+
elChecked.value = 'foo';
57+
elChecked.checked = true;
58+
const data = new FormData(form);
59+
expect(data.get('formControlChecked')).to.equal('foo');
60+
});
61+
62+
it('will toggle value as checked is toggled', async () => {
63+
elChecked.value = 'foo';
64+
elChecked.checked = true;
65+
let data = new FormData(form);
66+
expect(data.get('formControlChecked')).to.equal('foo');
67+
elChecked.checked = false;
68+
data = new FormData(form);
69+
expect(data.get('formControlChecked')).to.be.null;
70+
});
71+
});
72+
});
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2018.full.d.ts","../../node_modules/element-internals-polyfill/dist/customstateset.d.ts","../../node_modules/element-internals-polyfill/dist/types.d.ts","../../node_modules/element-internals-polyfill/dist/element-internals.d.ts","../../node_modules/element-internals-polyfill/dist/index.d.ts","./src/types.ts","./src/formcontrolmixin.ts","./src/validators.ts","./src/index.ts","../../node_modules/@types/mocha/index.d.ts","../../node_modules/@types/chai/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},"32b8443be144970b813b9dd72dcdba2059fbdfdae4d3a50c4d8a158ed6057bbe","9bd5315e077ba58da8c64dfedd221774c7cbc0811429a337d5c2e6304bbaea02",{"version":"c9efb056b7926b0675b1dd9d31df04d20850ee3a197af7e191408ea445a79025","affectsGlobalScope":true},{"version":"f128ce9c5d54802e2f23ec519880a722969920867f0036cb7412d0e226ffaaa6","affectsGlobalScope":true},{"version":"95cf2aa5ec914058a9e4bd8c17c5cd376b455edee8c9e3fed51cb7e138e5cf6f","affectsGlobalScope":true},"1826d04a977a1ef0c2d5119c17a4fdaad93b0d9c97209aef53a7b1c0ce6072bb","dab3669aa70871515d11f06a93cc3267ee44ab9bc475bb16cd082b738602ad37","5e51785338f972d1999220b532358f552aa336a2764e21b206093f993644711a","a9ca8c8ef409fa4809a4629c915bc2cf80d295a3c0d1a389b87459680830959c",{"version":"5f186a758a616c107c70e8918db4630d063bd782f22e6e0b17573b125765b40b","affectsGlobalScope":true},{"version":"c8747693e5872ad5ef3aa016731a06915e1c34dae987829d9aa5bd40c7a2c54b","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"outDir":"./lib","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[32],[31,32],[31,32,33],[31,33],[34,35],[35,36,37],[34],[38]],"referencedMap":[[31,1],[33,2],[34,3],[32,4],[36,5],[38,6],[35,7],[37,8]],"exportedModulesMap":[[31,1],[33,2],[34,3],[32,4],[36,5],[38,6],[35,7],[37,8]],"semanticDiagnosticsPerFile":[40,39,31,33,34,32,6,7,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,30,27,28,29,1,9,8,36,38,35,37]},"version":"4.5.4"}
1+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2018.full.d.ts","../../node_modules/element-internals-polyfill/dist/customstateset.d.ts","../../node_modules/element-internals-polyfill/dist/types.d.ts","../../node_modules/element-internals-polyfill/dist/element-internals.d.ts","../../node_modules/element-internals-polyfill/dist/index.d.ts","./src/types.ts","./src/formcontrolmixin.ts","./src/validators.ts","./src/index.ts","../../node_modules/@types/mocha/index.d.ts","../../node_modules/@types/chai/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},"32b8443be144970b813b9dd72dcdba2059fbdfdae4d3a50c4d8a158ed6057bbe","9bd5315e077ba58da8c64dfedd221774c7cbc0811429a337d5c2e6304bbaea02",{"version":"c9efb056b7926b0675b1dd9d31df04d20850ee3a197af7e191408ea445a79025","affectsGlobalScope":true},{"version":"f128ce9c5d54802e2f23ec519880a722969920867f0036cb7412d0e226ffaaa6","affectsGlobalScope":true},{"version":"95cf2aa5ec914058a9e4bd8c17c5cd376b455edee8c9e3fed51cb7e138e5cf6f","affectsGlobalScope":true},{"version":"f50506038e8fd455a3b3a7c09c89d55a1cd47968651832969adae9f1cef0e3a0","signature":"8f9f3370093a04e7229892cd2ff62cfde0c858523d41d0b037d18efc489a174b"},{"version":"5bae853387fbd6b89ae80078990edcb0d2908bfffdbf95514c1fea8041b4b41d","signature":"6508036e5af5ef6efc94971ac60e2fe1f9ccc1a26fcb9ca8abd4c6030d85ff6f"},{"version":"2982372301daf51242573d1aa4c1305d7546f92a9dd63b458abf0f00d2a59f9a","signature":"838d10d5132f5a6907cc323d5b129dadfdbbf0d8c97cb64c82777f17d20ed1a4"},"a9ca8c8ef409fa4809a4629c915bc2cf80d295a3c0d1a389b87459680830959c",{"version":"5f186a758a616c107c70e8918db4630d063bd782f22e6e0b17573b125765b40b","affectsGlobalScope":true},{"version":"c8747693e5872ad5ef3aa016731a06915e1c34dae987829d9aa5bd40c7a2c54b","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"downlevelIteration":true,"esModuleInterop":true,"experimentalDecorators":true,"outDir":"./lib","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[32],[31,32],[31,32,33],[31,33],[34,35],[35,36,37],[34],[38],[35]],"referencedMap":[[31,1],[33,2],[34,3],[32,4],[36,5],[38,6],[35,7],[37,8]],"exportedModulesMap":[[31,1],[33,2],[34,3],[32,4],[36,9],[38,6],[35,7],[37,8]],"semanticDiagnosticsPerFile":[40,39,31,33,34,32,6,7,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,30,27,28,29,1,9,8,36,38,35,37]},"version":"4.5.4"}

packages/form-control/tsconfig.json

+14-13
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
{
2-
"extends": "./tsconfig.base.json",
3-
"compilerOptions": {
4-
"composite": true
5-
},
6-
"include": [
7-
"src/*.ts",
8-
"*.js",
9-
"test-web/*.ts"
10-
],
11-
"exclude": [
12-
"dist",
13-
"types"
14-
]
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"composite": true,
5+
"experimentalDecorators": true
6+
},
7+
"include": [
8+
"src/*.ts",
9+
"*.js",
10+
"tests/*.ts"
11+
],
12+
"exclude": [
13+
"dist",
14+
"types"
15+
]
1516
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { esbuildPlugin } from '@web/dev-server-esbuild';
2+
import { sendKeysPlugin } from '@web/test-runner-commands/plugins';
3+
4+
export default {
5+
plugins: [
6+
esbuildPlugin({ ts: true, target: 'auto' }),
7+
sendKeysPlugin()
8+
]
9+
}

0 commit comments

Comments
 (0)