@najemi-software/vitest-dom 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/esm/index.d.ts +18 -3
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/matchers/to-be-checked.d.ts +8 -1
- package/esm/matchers/to-be-checked.d.ts.map +1 -1
- package/esm/matchers/to-be-checked.js +8 -1
- package/esm/matchers/to-be-checked.js.map +1 -1
- package/esm/matchers/to-be-disabled.d.ts +10 -2
- package/esm/matchers/to-be-disabled.d.ts.map +1 -1
- package/esm/matchers/to-be-disabled.js +10 -2
- package/esm/matchers/to-be-disabled.js.map +1 -1
- package/esm/matchers/to-be-empty-dom-element.d.ts +2 -1
- package/esm/matchers/to-be-empty-dom-element.d.ts.map +1 -1
- package/esm/matchers/to-be-empty-dom-element.js +2 -1
- package/esm/matchers/to-be-empty-dom-element.js.map +1 -1
- package/esm/matchers/to-be-empty.d.ts +5 -2
- package/esm/matchers/to-be-empty.d.ts.map +1 -1
- package/esm/matchers/to-be-empty.js +5 -2
- package/esm/matchers/to-be-empty.js.map +1 -1
- package/esm/matchers/to-be-in-the-document.d.ts +2 -1
- package/esm/matchers/to-be-in-the-document.d.ts.map +1 -1
- package/esm/matchers/to-be-in-the-document.js +2 -1
- package/esm/matchers/to-be-in-the-document.js.map +1 -1
- package/esm/matchers/to-be-in-the-dom.d.ts +6 -3
- package/esm/matchers/to-be-in-the-dom.d.ts.map +1 -1
- package/esm/matchers/to-be-in-the-dom.js +6 -3
- package/esm/matchers/to-be-in-the-dom.js.map +1 -1
- package/esm/matchers/to-be-invalid.d.ts +16 -2
- package/esm/matchers/to-be-invalid.d.ts.map +1 -1
- package/esm/matchers/to-be-invalid.js +16 -2
- package/esm/matchers/to-be-invalid.js.map +1 -1
- package/esm/matchers/to-be-partially-checked.d.ts +7 -1
- package/esm/matchers/to-be-partially-checked.d.ts.map +1 -1
- package/esm/matchers/to-be-partially-checked.js +7 -1
- package/esm/matchers/to-be-partially-checked.js.map +1 -1
- package/esm/matchers/to-be-required.d.ts +8 -1
- package/esm/matchers/to-be-required.d.ts.map +1 -1
- package/esm/matchers/to-be-required.js +8 -1
- package/esm/matchers/to-be-required.js.map +1 -1
- package/esm/matchers/to-be-visible.d.ts +2 -1
- package/esm/matchers/to-be-visible.d.ts.map +1 -1
- package/esm/matchers/to-be-visible.js +2 -1
- package/esm/matchers/to-be-visible.js.map +1 -1
- package/esm/matchers/to-contain-element.d.ts +2 -1
- package/esm/matchers/to-contain-element.d.ts.map +1 -1
- package/esm/matchers/to-contain-element.js +2 -1
- package/esm/matchers/to-contain-element.js.map +1 -1
- package/esm/matchers/to-contain-html.d.ts +2 -1
- package/esm/matchers/to-contain-html.d.ts.map +1 -1
- package/esm/matchers/to-contain-html.js +2 -1
- package/esm/matchers/to-contain-html.js.map +1 -1
- package/esm/matchers/to-have-accessible-description.d.ts +2 -1
- package/esm/matchers/to-have-accessible-description.d.ts.map +1 -1
- package/esm/matchers/to-have-accessible-description.js +2 -1
- package/esm/matchers/to-have-accessible-description.js.map +1 -1
- package/esm/matchers/to-have-accessible-errormessage.d.ts +6 -1
- package/esm/matchers/to-have-accessible-errormessage.d.ts.map +1 -1
- package/esm/matchers/to-have-accessible-errormessage.js +6 -1
- package/esm/matchers/to-have-accessible-errormessage.js.map +1 -1
- package/esm/matchers/to-have-accessible-name.d.ts +2 -1
- package/esm/matchers/to-have-accessible-name.d.ts.map +1 -1
- package/esm/matchers/to-have-accessible-name.js +2 -1
- package/esm/matchers/to-have-accessible-name.js.map +1 -1
- package/esm/matchers/to-have-attribute.d.ts +8 -1
- package/esm/matchers/to-have-attribute.d.ts.map +1 -1
- package/esm/matchers/to-have-attribute.js +8 -1
- package/esm/matchers/to-have-attribute.js.map +1 -1
- package/esm/matchers/to-have-class.d.ts +12 -3
- package/esm/matchers/to-have-class.d.ts.map +1 -1
- package/esm/matchers/to-have-class.js +8 -1
- package/esm/matchers/to-have-class.js.map +1 -1
- package/esm/matchers/to-have-description.d.ts +10 -3
- package/esm/matchers/to-have-description.d.ts.map +1 -1
- package/esm/matchers/to-have-description.js +10 -3
- package/esm/matchers/to-have-description.js.map +1 -1
- package/esm/matchers/to-have-display-value.d.ts +7 -1
- package/esm/matchers/to-have-display-value.d.ts.map +1 -1
- package/esm/matchers/to-have-display-value.js +7 -1
- package/esm/matchers/to-have-display-value.js.map +1 -1
- package/esm/matchers/to-have-errormessage.d.ts +3 -3
- package/esm/matchers/to-have-errormessage.js +3 -3
- package/esm/matchers/to-have-focus.d.ts +2 -1
- package/esm/matchers/to-have-focus.d.ts.map +1 -1
- package/esm/matchers/to-have-focus.js +2 -1
- package/esm/matchers/to-have-focus.js.map +1 -1
- package/esm/matchers/to-have-form-values.d.ts +8 -1
- package/esm/matchers/to-have-form-values.d.ts.map +1 -1
- package/esm/matchers/to-have-form-values.js +8 -1
- package/esm/matchers/to-have-form-values.js.map +1 -1
- package/esm/matchers/to-have-style.d.ts +8 -1
- package/esm/matchers/to-have-style.d.ts.map +1 -1
- package/esm/matchers/to-have-style.js +8 -1
- package/esm/matchers/to-have-style.js.map +1 -1
- package/esm/matchers/to-have-text-content.d.ts +2 -1
- package/esm/matchers/to-have-text-content.d.ts.map +1 -1
- package/esm/matchers/to-have-text-content.js +2 -1
- package/esm/matchers/to-have-text-content.js.map +1 -1
- package/esm/matchers/to-have-value.d.ts +2 -1
- package/esm/matchers/to-have-value.d.ts.map +1 -1
- package/esm/matchers/to-have-value.js +2 -1
- package/esm/matchers/to-have-value.js.map +1 -1
- package/esm/matchers/types.d.ts +15 -0
- package/esm/matchers/types.d.ts.map +1 -1
- package/esm/tsdoc-metadata.json +11 -0
- package/esm/vitest-dom.d.ts +882 -0
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.0] - 2026-09-28
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Add @microsoft/api-extractor and fix missing exports
|
|
13
|
+
|
|
8
14
|
## [1.0.1] - 2026-09-28
|
|
9
15
|
|
|
10
16
|
### Fixed
|
|
@@ -361,6 +367,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
361
367
|
|
|
362
368
|
- Initial release
|
|
363
369
|
|
|
370
|
+
[1.1.0]: https://github.com/Najemi-Software/vitest-dom/compare/v1.0.1...v1.1.0
|
|
364
371
|
[1.0.1]: https://github.com/Najemi-Software/vitest-dom/compare/v1.0.0...v1.0.1
|
|
365
372
|
[1.0.0]: https://github.com/Najemi-Software/vitest-dom/compare/v0.37.0...v1.0.0
|
|
366
373
|
[0.37.0]: https://github.com/Najemi-Software/vitest-dom/compare/v0.36.0...v0.37.0
|
package/esm/index.d.ts
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import * as matchers from "./matchers/index.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type { ExpectationResult, IMatcherFn, IMatcherResult, MatcherArgs, MatcherState } from "./matchers/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
5
6
|
export type TestingLibraryMatchers<R> = {
|
|
6
7
|
[K in keyof typeof matchers]: (...args: MatcherArgs<(typeof matchers)[K]>) => R;
|
|
7
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Removes the `string` and `number` index signatures from `T`, keeping only its known keys.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* `Matchers` also types `expect.extend()`, so it must not inherit the index
|
|
14
|
+
* signature of `TestingLibraryMatchers` (`Record<string, any>`): that would
|
|
15
|
+
* require every extended matcher to accept arguments of type `unknown`.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
8
19
|
export type WithoutIndexSignature<T> = {
|
|
9
20
|
[K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
|
|
10
21
|
};
|
|
22
|
+
export * from "./matchers/index.js";
|
|
23
|
+
export { matchers };
|
|
24
|
+
export { type ExpectationResult, type IMatcherFn, type IMatcherResult, type MatcherArgs, type MatcherState };
|
|
25
|
+
export type { IToHaveClassOptions } from "./matchers/to-have-class.js";
|
|
11
26
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EACR,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACf,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;KACnC,CAAC,IAAI,MAAM,OAAO,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;CAClF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClF,CAAC;AAGF,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;AAG7G,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/esm/index.js
CHANGED
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AA8BhD,WAAW;AACX,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { IMatcherResult, MatcherState } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
3
|
* Assert whether the given element is checked.
|
|
5
4
|
*
|
|
6
5
|
* It accepts an `input` of type `checkbox` or `radio` and elements with a `role` of `radio` with a valid
|
|
7
6
|
* `aria-checked` attribute of "true" or "false".
|
|
7
|
+
*
|
|
8
8
|
* @example
|
|
9
|
+
* ```html
|
|
9
10
|
* <input
|
|
10
11
|
* type="checkbox"
|
|
11
12
|
* checked
|
|
@@ -14,13 +15,19 @@ import type { IMatcherResult, MatcherState } from "./types.js";
|
|
|
14
15
|
* type="radio"
|
|
15
16
|
* value="foo"
|
|
16
17
|
* data-testid="input-radio" />
|
|
18
|
+
* ```
|
|
17
19
|
*
|
|
20
|
+
* ```ts
|
|
18
21
|
* const inputCheckbox = getByTestId('input-checkbox')
|
|
19
22
|
* const inputRadio = getByTestId('input-radio')
|
|
20
23
|
* expect(inputCheckbox).toBeChecked()
|
|
21
24
|
* expect(inputRadio).not.toBeChecked()
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
22
27
|
* @see
|
|
23
28
|
* [testing-library/jest-dom#tobechecked](https://github.com/testing-library/jest-dom#tobechecked)
|
|
29
|
+
*
|
|
30
|
+
* @public
|
|
24
31
|
*/
|
|
25
32
|
export declare function toBeChecked(this: MatcherState, element: Element): IMatcherResult;
|
|
26
33
|
//# sourceMappingURL=to-be-checked.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-checked.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-checked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/D
|
|
1
|
+
{"version":3,"file":"to-be-checked.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-checked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAe/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CA0ChF"}
|
|
@@ -11,12 +11,13 @@ const ROLES_SUPPORTING_CHECKED = [
|
|
|
11
11
|
"treeitem",
|
|
12
12
|
];
|
|
13
13
|
/**
|
|
14
|
-
* @description
|
|
15
14
|
* Assert whether the given element is checked.
|
|
16
15
|
*
|
|
17
16
|
* It accepts an `input` of type `checkbox` or `radio` and elements with a `role` of `radio` with a valid
|
|
18
17
|
* `aria-checked` attribute of "true" or "false".
|
|
18
|
+
*
|
|
19
19
|
* @example
|
|
20
|
+
* ```html
|
|
20
21
|
* <input
|
|
21
22
|
* type="checkbox"
|
|
22
23
|
* checked
|
|
@@ -25,13 +26,19 @@ const ROLES_SUPPORTING_CHECKED = [
|
|
|
25
26
|
* type="radio"
|
|
26
27
|
* value="foo"
|
|
27
28
|
* data-testid="input-radio" />
|
|
29
|
+
* ```
|
|
28
30
|
*
|
|
31
|
+
* ```ts
|
|
29
32
|
* const inputCheckbox = getByTestId('input-checkbox')
|
|
30
33
|
* const inputRadio = getByTestId('input-radio')
|
|
31
34
|
* expect(inputCheckbox).toBeChecked()
|
|
32
35
|
* expect(inputRadio).not.toBeChecked()
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
33
38
|
* @see
|
|
34
39
|
* [testing-library/jest-dom#tobechecked](https://github.com/testing-library/jest-dom#tobechecked)
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
35
42
|
*/
|
|
36
43
|
export function toBeChecked(element) {
|
|
37
44
|
checkHtmlElement(element, toBeChecked, this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-checked.js","sourceRoot":"","sources":["../../src/matchers/to-be-checked.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D,mDAAmD;AACnD,sDAAsD;AACtD,MAAM,wBAAwB,GAAG;IAC7B,UAAU;IACV,kBAAkB;IAClB,eAAe;IACf,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,UAAU;CACb,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"to-be-checked.js","sourceRoot":"","sources":["../../src/matchers/to-be-checked.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D,mDAAmD;AACnD,sDAAsD;AACtD,MAAM,wBAAwB,GAAG;IAC7B,UAAU;IACV,kBAAkB;IAClB,eAAe;IACf,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,UAAU;CACb,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,WAAW,CAAqB,OAAgB;IAC5D,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,CACH,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO;YACzC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAE,OAA4B,CAAC,IAAI,CAAC,CACrE,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,OAAO,CACH,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CACzE,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC3C,OAAO;YACH,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,GAAG,EAAE,CACV,qEAAqE,sBAAsB,EAAE,iGAAiG;SACrM,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,IAAI,YAAY,EAAE;YAAE,OAAQ,OAA4B,CAAC,OAAO,CAAC;QACjE,OAAO,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO;QACH,IAAI,EAAE,SAAS,EAAE;QACjB,OAAO,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzC,OAAO;gBACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC;gBAChF,EAAE;gBACF,oBAAoB,EAAE,WAAW;gBACjC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;aAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB;IAC3B,OAAO,UAAU,CACb,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,GAAG,CAAC,EACxD,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAChC,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAmB;IAC5C,OAAO,IAAI,KAAK,IAAI,IAAI,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { IMatcherResult, MatcherState } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
3
|
* Allows you to check whether an element is disabled from the user's perspective.
|
|
5
4
|
*
|
|
6
5
|
* Matches if the element is a form control and the `disabled` attribute is specified on this element or the
|
|
7
6
|
* element is a descendant of a form element with a `disabled` attribute.
|
|
7
|
+
*
|
|
8
8
|
* @example
|
|
9
|
+
* ```html
|
|
9
10
|
* <button
|
|
10
11
|
* data-testid="button"
|
|
11
12
|
* type="submit"
|
|
@@ -13,14 +14,19 @@ import type { IMatcherResult, MatcherState } from "./types.js";
|
|
|
13
14
|
* >
|
|
14
15
|
* submit
|
|
15
16
|
* </button>
|
|
17
|
+
* ```
|
|
16
18
|
*
|
|
19
|
+
* ```ts
|
|
17
20
|
* expect(getByTestId('button')).toBeDisabled()
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
18
23
|
* @see
|
|
19
24
|
* [testing-library/jest-dom#tobedisabled](https://github.com/testing-library/jest-dom#tobedisabled)
|
|
25
|
+
*
|
|
26
|
+
* @public
|
|
20
27
|
*/
|
|
21
28
|
export declare function toBeDisabled(this: MatcherState, element: Element): IMatcherResult;
|
|
22
29
|
/**
|
|
23
|
-
* @description
|
|
24
30
|
* Allows you to check whether an element is not disabled from the user's perspective.
|
|
25
31
|
*
|
|
26
32
|
* Works like `not.toBeDisabled()`.
|
|
@@ -37,6 +43,8 @@ export declare function toBeDisabled(this: MatcherState, element: Element): IMat
|
|
|
37
43
|
* expect(getByTestId('button')).toBeEnabled()
|
|
38
44
|
* @see
|
|
39
45
|
* [testing-library/jest-dom#tobeenabled](https://github.com/testing-library/jest-dom#tobeenabled)
|
|
46
|
+
*
|
|
47
|
+
* @public
|
|
40
48
|
*/
|
|
41
49
|
export declare function toBeEnabled(this: MatcherState, element: Element): IMatcherResult;
|
|
42
50
|
//# sourceMappingURL=to-be-disabled.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-disabled.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-disabled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAqD/D
|
|
1
|
+
{"version":3,"file":"to-be-disabled.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-disabled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAqD/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAiBjF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAiBhF"}
|
|
@@ -40,12 +40,13 @@ function isElementOrAncestorDisabled(element) {
|
|
|
40
40
|
return canElementBeDisabled(element) && (isElementDisabled(element) || isAncestorDisabled(element));
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
* @description
|
|
44
43
|
* Allows you to check whether an element is disabled from the user's perspective.
|
|
45
44
|
*
|
|
46
45
|
* Matches if the element is a form control and the `disabled` attribute is specified on this element or the
|
|
47
46
|
* element is a descendant of a form element with a `disabled` attribute.
|
|
47
|
+
*
|
|
48
48
|
* @example
|
|
49
|
+
* ```html
|
|
49
50
|
* <button
|
|
50
51
|
* data-testid="button"
|
|
51
52
|
* type="submit"
|
|
@@ -53,10 +54,16 @@ function isElementOrAncestorDisabled(element) {
|
|
|
53
54
|
* >
|
|
54
55
|
* submit
|
|
55
56
|
* </button>
|
|
57
|
+
* ```
|
|
56
58
|
*
|
|
59
|
+
* ```ts
|
|
57
60
|
* expect(getByTestId('button')).toBeDisabled()
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
58
63
|
* @see
|
|
59
64
|
* [testing-library/jest-dom#tobedisabled](https://github.com/testing-library/jest-dom#tobedisabled)
|
|
65
|
+
*
|
|
66
|
+
* @public
|
|
60
67
|
*/
|
|
61
68
|
export function toBeDisabled(element) {
|
|
62
69
|
checkHtmlElement(element, toBeDisabled, this);
|
|
@@ -75,7 +82,6 @@ export function toBeDisabled(element) {
|
|
|
75
82
|
};
|
|
76
83
|
}
|
|
77
84
|
/**
|
|
78
|
-
* @description
|
|
79
85
|
* Allows you to check whether an element is not disabled from the user's perspective.
|
|
80
86
|
*
|
|
81
87
|
* Works like `not.toBeDisabled()`.
|
|
@@ -92,6 +98,8 @@ export function toBeDisabled(element) {
|
|
|
92
98
|
* expect(getByTestId('button')).toBeEnabled()
|
|
93
99
|
* @see
|
|
94
100
|
* [testing-library/jest-dom#tobeenabled](https://github.com/testing-library/jest-dom#tobeenabled)
|
|
101
|
+
*
|
|
102
|
+
* @public
|
|
95
103
|
*/
|
|
96
104
|
export function toBeEnabled(element) {
|
|
97
105
|
checkHtmlElement(element, toBeEnabled, this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-disabled.js","sourceRoot":"","sources":["../../src/matchers/to-be-disabled.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEtD,wCAAwC;AACxC,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE9F;;;;;;;;GAQG;AACH,SAAS,4BAA4B,CAAC,OAAgB,EAAE,MAAe;IACnE,OAAO,CACH,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ;QAC5B,MAAM,CAAC,MAAM,CAAC,KAAK,UAAU;QAC7B,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,CACtG,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAgB,EAAE,MAAe;IAChE,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,OAAgB;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACvC,OAAO,oBAAoB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrC,OAAO,MAAM,KAAK,IAAI,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AACzG,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAgB;IACjD,OAAO,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AACxG,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"to-be-disabled.js","sourceRoot":"","sources":["../../src/matchers/to-be-disabled.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IMatcherResult, MatcherState } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
3
|
* Assert whether an element has content or not.
|
|
5
4
|
* @example
|
|
6
5
|
* <span data-testid="not-empty">
|
|
@@ -11,6 +10,8 @@ import type { IMatcherResult, MatcherState } from "./types.js";
|
|
|
11
10
|
* expect(getByTestId('not-empty')).not.toBeEmptyDOMElement()
|
|
12
11
|
* @see
|
|
13
12
|
* [testing-library/jest-dom#tobeemptydomelement](https://github.com/testing-library/jest-dom#tobeemptydomelement)
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
14
15
|
*/
|
|
15
16
|
export declare function toBeEmptyDOMElement(this: MatcherState, element: Element): IMatcherResult;
|
|
16
17
|
//# sourceMappingURL=to-be-empty-dom-element.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-empty-dom-element.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-empty-dom-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D
|
|
1
|
+
{"version":3,"file":"to-be-empty-dom-element.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-empty-dom-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAcxF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { checkHtmlElement } from "./utils.js";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
3
|
* Assert whether an element has content or not.
|
|
5
4
|
* @example
|
|
6
5
|
* <span data-testid="not-empty">
|
|
@@ -11,6 +10,8 @@ import { checkHtmlElement } from "./utils.js";
|
|
|
11
10
|
* expect(getByTestId('not-empty')).not.toBeEmptyDOMElement()
|
|
12
11
|
* @see
|
|
13
12
|
* [testing-library/jest-dom#tobeemptydomelement](https://github.com/testing-library/jest-dom#tobeemptydomelement)
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
14
15
|
*/
|
|
15
16
|
export function toBeEmptyDOMElement(element) {
|
|
16
17
|
checkHtmlElement(element, toBeEmptyDOMElement, this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-empty-dom-element.js","sourceRoot":"","sources":["../../src/matchers/to-be-empty-dom-element.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"to-be-empty-dom-element.js","sourceRoot":"","sources":["../../src/matchers/to-be-empty-dom-element.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAqB,OAAgB;IACpE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAErD,OAAO;QACH,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,GAAG,EAAE;YACV,OAAO;gBACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,SAAS,EAAE,EAAE,CAAC;gBACxF,EAAE;gBACF,WAAW;gBACX,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;aACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CAAC,OAAgB;IACpC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;IAClG,OAAO,oBAAoB,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { IMatcherResult, MatcherState } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
+
* Assert whether an element has content or not.
|
|
4
|
+
*
|
|
3
5
|
* @deprecated
|
|
4
6
|
* since v5.9.0
|
|
5
|
-
*
|
|
6
|
-
* Assert whether an element has content or not.
|
|
7
|
+
*
|
|
7
8
|
* @example
|
|
8
9
|
* <span data-testid="not-empty">
|
|
9
10
|
* <span data-testid="empty"></span>
|
|
@@ -13,6 +14,8 @@ import type { IMatcherResult, MatcherState } from "./types.js";
|
|
|
13
14
|
* expect(getByTestId('not-empty')).not.toBeEmpty()
|
|
14
15
|
* @see
|
|
15
16
|
* [testing-library/jest-dom#tobeempty](https://github.com/testing-library/jest-dom#tobeempty)
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
16
19
|
*/
|
|
17
20
|
export declare function toBeEmpty(this: MatcherState, element: Element): IMatcherResult;
|
|
18
21
|
//# sourceMappingURL=to-be-empty.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-empty.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-empty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D
|
|
1
|
+
{"version":3,"file":"to-be-empty.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-empty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAe9E"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { checkHtmlElement, deprecate } from "./utils.js";
|
|
2
2
|
/**
|
|
3
|
+
* Assert whether an element has content or not.
|
|
4
|
+
*
|
|
3
5
|
* @deprecated
|
|
4
6
|
* since v5.9.0
|
|
5
|
-
*
|
|
6
|
-
* Assert whether an element has content or not.
|
|
7
|
+
*
|
|
7
8
|
* @example
|
|
8
9
|
* <span data-testid="not-empty">
|
|
9
10
|
* <span data-testid="empty"></span>
|
|
@@ -13,6 +14,8 @@ import { checkHtmlElement, deprecate } from "./utils.js";
|
|
|
13
14
|
* expect(getByTestId('not-empty')).not.toBeEmpty()
|
|
14
15
|
* @see
|
|
15
16
|
* [testing-library/jest-dom#tobeempty](https://github.com/testing-library/jest-dom#tobeempty)
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
16
19
|
*/
|
|
17
20
|
export function toBeEmpty(element) {
|
|
18
21
|
deprecate("toBeEmpty", "Please use instead toBeEmptyDOMElement for finding empty nodes in the DOM.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-empty.js","sourceRoot":"","sources":["../../src/matchers/to-be-empty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"to-be-empty.js","sourceRoot":"","sources":["../../src/matchers/to-be-empty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,SAAS,CAAqB,OAAgB;IAC1D,SAAS,CAAC,WAAW,EAAE,4EAA4E,CAAC,CAAC;IACrG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAE3C,OAAO;QACH,IAAI,EAAE,OAAO,CAAC,SAAS,KAAK,EAAE;QAC9B,OAAO,EAAE,GAAG,EAAE;YACV,OAAO;gBACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC9E,EAAE;gBACF,WAAW;gBACX,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;aACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IMatcherResult, MatcherState } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
3
|
* Assert whether an element is present in the document or not.
|
|
5
4
|
* @example
|
|
6
5
|
* <svg data-testid="svg-element"></svg>
|
|
@@ -9,6 +8,8 @@ import type { IMatcherResult, MatcherState } from "./types.js";
|
|
|
9
8
|
* expect(queryByTestId('does-not-exist')).not.toBeInTheDocument()
|
|
10
9
|
* @see
|
|
11
10
|
* [testing-library/jest-dom#tobeinthedocument](https://github.com/testing-library/jest-dom#tobeinthedocument)
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
12
13
|
*/
|
|
13
14
|
export declare function toBeInTheDocument(this: MatcherState, element: Element): IMatcherResult;
|
|
14
15
|
//# sourceMappingURL=to-be-in-the-document.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-in-the-document.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D
|
|
1
|
+
{"version":3,"file":"to-be-in-the-document.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CA0BtF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { checkHtmlElement } from "./utils.js";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
3
|
* Assert whether an element is present in the document or not.
|
|
5
4
|
* @example
|
|
6
5
|
* <svg data-testid="svg-element"></svg>
|
|
@@ -9,6 +8,8 @@ import { checkHtmlElement } from "./utils.js";
|
|
|
9
8
|
* expect(queryByTestId('does-not-exist')).not.toBeInTheDocument()
|
|
10
9
|
* @see
|
|
11
10
|
* [testing-library/jest-dom#tobeinthedocument](https://github.com/testing-library/jest-dom#tobeinthedocument)
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
12
13
|
*/
|
|
13
14
|
export function toBeInTheDocument(element) {
|
|
14
15
|
if (element !== null || !this.isNot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-in-the-document.js","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"to-be-in-the-document.js","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAqB,OAAgB;IAClE,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1G,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,OAAO,mDAAmD,IAAI,CAAC,KAAK,CAAC,SAAS,CAC1E,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAC1B,UAAU,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,OAAO,4CAA4C,CAAC;IACxD,CAAC,CAAC;IAEF,OAAO;QACH,IAAI;QACJ,OAAO,EAAE,GAAG,EAAE;YACV,OAAO;gBACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,CAAC;gBACtF,EAAE;gBACF,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;aACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import type { IMatcherResult, MatcherState } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* @deprecated
|
|
4
|
-
* since v1.9.0
|
|
5
|
-
* @description
|
|
6
3
|
* Assert whether a value is a DOM element, or not. Contrary to what its name
|
|
7
4
|
* implies, this matcher only checks that you passed to it a valid DOM
|
|
8
5
|
* element.
|
|
9
6
|
*
|
|
10
7
|
* It does not have a clear definition of what "the DOM" is. Therefore, it
|
|
11
8
|
* does not check whether that element is contained anywhere.
|
|
9
|
+
*
|
|
10
|
+
* @deprecated
|
|
11
|
+
* since v1.9.0
|
|
12
|
+
*
|
|
12
13
|
* @see [testing-library/jest-dom#toBeInTheDom](https://github.com/testing-library/jest-dom#toBeInTheDom)
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
13
16
|
*/
|
|
14
17
|
export declare function toBeInTheDOM(this: MatcherState, element: Element, container?: HTMLElement | SVGElement): IMatcherResult;
|
|
15
18
|
//# sourceMappingURL=to-be-in-the-dom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-in-the-dom.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D
|
|
1
|
+
{"version":3,"file":"to-be-in-the-dom.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CACxB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,WAAW,GAAG,UAAU,GACrC,cAAc,CAyBhB"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { checkHtmlElement, deprecate } from "./utils.js";
|
|
2
2
|
/**
|
|
3
|
-
* @deprecated
|
|
4
|
-
* since v1.9.0
|
|
5
|
-
* @description
|
|
6
3
|
* Assert whether a value is a DOM element, or not. Contrary to what its name
|
|
7
4
|
* implies, this matcher only checks that you passed to it a valid DOM
|
|
8
5
|
* element.
|
|
9
6
|
*
|
|
10
7
|
* It does not have a clear definition of what "the DOM" is. Therefore, it
|
|
11
8
|
* does not check whether that element is contained anywhere.
|
|
9
|
+
*
|
|
10
|
+
* @deprecated
|
|
11
|
+
* since v1.9.0
|
|
12
|
+
*
|
|
12
13
|
* @see [testing-library/jest-dom#toBeInTheDom](https://github.com/testing-library/jest-dom#toBeInTheDom)
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
13
16
|
*/
|
|
14
17
|
export function toBeInTheDOM(element, container) {
|
|
15
18
|
deprecate("toBeInTheDOM", "Please use toBeInTheDocument for searching the entire document and toContainElement for searching a specific container.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-in-the-dom.js","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"to-be-in-the-dom.js","sourceRoot":"","sources":["../../src/matchers/to-be-in-the-dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAExB,OAAgB,EAChB,SAAoC;IAEpC,SAAS,CACL,cAAc,EACd,yHAAyH,CAC5H,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACV,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACH,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;QACzD,OAAO,EAAE,GAAG,EAAE;YACV,OAAO;gBACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC;gBACjF,EAAE;gBACF,WAAW;gBACX,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;aAChF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1,40 +1,54 @@
|
|
|
1
1
|
import type { IMatcherResult, MatcherState } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
3
|
* Check if a form element, or the entire `form`, is currently invalid.
|
|
5
4
|
*
|
|
6
5
|
* An `input`, `select`, `textarea`, or `form` element is invalid if it has an `aria-invalid` attribute with no
|
|
7
6
|
* value or a value of "true", or if the result of `checkValidity()` is false.
|
|
7
|
+
*
|
|
8
8
|
* @example
|
|
9
|
+
* ```html
|
|
9
10
|
* <input data-testid="no-aria-invalid" />
|
|
10
11
|
*
|
|
11
12
|
* <form data-testid="invalid-form">
|
|
12
13
|
* <input required />
|
|
13
14
|
* </form>
|
|
15
|
+
* ```
|
|
14
16
|
*
|
|
17
|
+
* ```ts
|
|
15
18
|
* expect(getByTestId('no-aria-invalid')).not.toBeInvalid()
|
|
16
19
|
* expect(getByTestId('invalid-form')).toBeInvalid()
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
17
22
|
* @see
|
|
18
23
|
* [testing-library/jest-dom#tobeinvalid](https://github.com/testing-library/jest-dom#tobeinvalid)
|
|
24
|
+
*
|
|
25
|
+
* @public
|
|
19
26
|
*/
|
|
20
27
|
export declare function toBeInvalid(this: MatcherState, element: Element): IMatcherResult;
|
|
21
28
|
/**
|
|
22
|
-
* @description
|
|
23
29
|
* Allows you to check if a form element is currently required.
|
|
24
30
|
*
|
|
25
31
|
* An `input`, `select`, `textarea`, or `form` element is invalid if it has an `aria-invalid` attribute with no
|
|
26
32
|
* value or a value of "false", or if the result of `checkValidity()` is true.
|
|
33
|
+
*
|
|
27
34
|
* @example
|
|
35
|
+
* ```html
|
|
28
36
|
* <input data-testid="aria-invalid" aria-invalid />
|
|
29
37
|
*
|
|
30
38
|
* <form data-testid="valid-form">
|
|
31
39
|
* <input />
|
|
32
40
|
* </form>
|
|
41
|
+
* ```
|
|
33
42
|
*
|
|
43
|
+
* ```ts
|
|
34
44
|
* expect(getByTestId('no-aria-invalid')).not.toBeValid()
|
|
35
45
|
* expect(getByTestId('invalid-form')).toBeInvalid()
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
36
48
|
* @see
|
|
37
49
|
* [testing-library/jest-dom#tobevalid](https://github.com/testing-library/jest-dom#tobevalid)
|
|
50
|
+
*
|
|
51
|
+
* @public
|
|
38
52
|
*/
|
|
39
53
|
export declare function toBeValid(this: MatcherState, element: Element): IMatcherResult;
|
|
40
54
|
//# sourceMappingURL=to-be-invalid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-invalid.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-invalid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwB/D
|
|
1
|
+
{"version":3,"file":"to-be-invalid.d.ts","sourceRoot":"","sources":["../../src/matchers/to-be-invalid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwB/D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAiBhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,cAAc,CAiB9E"}
|
|
@@ -16,22 +16,29 @@ function isElementInvalid(element) {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* @description
|
|
20
19
|
* Check if a form element, or the entire `form`, is currently invalid.
|
|
21
20
|
*
|
|
22
21
|
* An `input`, `select`, `textarea`, or `form` element is invalid if it has an `aria-invalid` attribute with no
|
|
23
22
|
* value or a value of "true", or if the result of `checkValidity()` is false.
|
|
23
|
+
*
|
|
24
24
|
* @example
|
|
25
|
+
* ```html
|
|
25
26
|
* <input data-testid="no-aria-invalid" />
|
|
26
27
|
*
|
|
27
28
|
* <form data-testid="invalid-form">
|
|
28
29
|
* <input required />
|
|
29
30
|
* </form>
|
|
31
|
+
* ```
|
|
30
32
|
*
|
|
33
|
+
* ```ts
|
|
31
34
|
* expect(getByTestId('no-aria-invalid')).not.toBeInvalid()
|
|
32
35
|
* expect(getByTestId('invalid-form')).toBeInvalid()
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
33
38
|
* @see
|
|
34
39
|
* [testing-library/jest-dom#tobeinvalid](https://github.com/testing-library/jest-dom#tobeinvalid)
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
35
42
|
*/
|
|
36
43
|
export function toBeInvalid(element) {
|
|
37
44
|
checkHtmlElement(element, toBeInvalid, this);
|
|
@@ -50,22 +57,29 @@ export function toBeInvalid(element) {
|
|
|
50
57
|
};
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
|
-
* @description
|
|
54
60
|
* Allows you to check if a form element is currently required.
|
|
55
61
|
*
|
|
56
62
|
* An `input`, `select`, `textarea`, or `form` element is invalid if it has an `aria-invalid` attribute with no
|
|
57
63
|
* value or a value of "false", or if the result of `checkValidity()` is true.
|
|
64
|
+
*
|
|
58
65
|
* @example
|
|
66
|
+
* ```html
|
|
59
67
|
* <input data-testid="aria-invalid" aria-invalid />
|
|
60
68
|
*
|
|
61
69
|
* <form data-testid="valid-form">
|
|
62
70
|
* <input />
|
|
63
71
|
* </form>
|
|
72
|
+
* ```
|
|
64
73
|
*
|
|
74
|
+
* ```ts
|
|
65
75
|
* expect(getByTestId('no-aria-invalid')).not.toBeValid()
|
|
66
76
|
* expect(getByTestId('invalid-form')).toBeInvalid()
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
67
79
|
* @see
|
|
68
80
|
* [testing-library/jest-dom#tobevalid](https://github.com/testing-library/jest-dom#tobevalid)
|
|
81
|
+
*
|
|
82
|
+
* @public
|
|
69
83
|
*/
|
|
70
84
|
export function toBeValid(element) {
|
|
71
85
|
checkHtmlElement(element, toBeValid, this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-be-invalid.js","sourceRoot":"","sources":["../../src/matchers/to-be-invalid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE1D,SAAS,0BAA0B,CAAC,OAAgB;IAChD,OAAO,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC;AACpG,CAAC;AAED,SAAS,wBAAwB,CAC7B,OAAgB;IAEhB,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACtC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,iBAAiB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC;SAAM,CAAC;QACJ,OAAO,iBAAiB,CAAC;IAC7B,CAAC;AACL,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"to-be-invalid.js","sourceRoot":"","sources":["../../src/matchers/to-be-invalid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAE1D,SAAS,0BAA0B,CAAC,OAAgB;IAChD,OAAO,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC;AACpG,CAAC;AAED,SAAS,wBAAwB,CAC7B,OAAgB;IAEhB,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACtC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,iBAAiB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC;SAAM,CAAC;QACJ,OAAO,iBAAiB,CAAC;IAC7B,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,WAAW,CAAqB,OAAgB;IAC5D,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,OAAO;gBACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC;gBAChF,EAAE;gBACF,oBAAoB,EAAE,qBAAqB;gBAC3C,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;aAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,SAAS,CAAqB,OAAgB;IAC1D,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE3C,OAAO;QACH,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,GAAG,EAAE;YACV,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrC,OAAO;gBACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC9E,EAAE;gBACF,oBAAoB,EAAE,mBAAmB;gBACzC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;aAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC"}
|