cypress 13.2.0 โ†’ 13.3.1

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.
Files changed (46) hide show
  1. package/angular/angular/README.md +10 -0
  2. package/angular/angular/dist/index.d.ts +128 -0
  3. package/angular/angular/dist/index.js +333 -0
  4. package/angular/angular/package.json +77 -0
  5. package/angular/package.json +9 -1
  6. package/lib/exec/spawn.js +1 -1
  7. package/lib/util.js +1 -1
  8. package/mount-utils/mount-utils/README.md +140 -0
  9. package/mount-utils/mount-utils/dist/index.d.ts +40 -0
  10. package/mount-utils/mount-utils/dist/index.js +68 -0
  11. package/mount-utils/mount-utils/package.json +46 -0
  12. package/mount-utils/package.json +10 -1
  13. package/package.json +20 -4
  14. package/react/package.json +13 -0
  15. package/react/react/README.md +14 -0
  16. package/react/react/dist/cypress-react.cjs.js +943 -0
  17. package/react/react/dist/cypress-react.esm-bundler.js +917 -0
  18. package/react/react/dist/index.d.ts +111 -0
  19. package/react/react/package.json +111 -0
  20. package/react18/package.json +10 -0
  21. package/react18/react18/README.md +7 -0
  22. package/react18/react18/dist/cypress-react.cjs.js +592 -0
  23. package/react18/react18/dist/cypress-react.esm-bundler.js +569 -0
  24. package/react18/react18/dist/index.d.ts +78 -0
  25. package/react18/react18/package.json +71 -0
  26. package/svelte/package.json +13 -1
  27. package/svelte/svelte/README.md +15 -0
  28. package/svelte/svelte/dist/cypress-svelte.cjs.js +122 -0
  29. package/svelte/svelte/dist/cypress-svelte.esm-bundler.js +120 -0
  30. package/svelte/svelte/dist/index.d.ts +201 -0
  31. package/svelte/svelte/package.json +56 -0
  32. package/types/cypress.d.ts +2 -2
  33. package/vue/package.json +13 -1
  34. package/vue/vue/README.md +14 -0
  35. package/vue/vue/dist/cypress-vue.cjs.js +8582 -0
  36. package/vue/vue/dist/cypress-vue.esm-bundler.js +8560 -0
  37. package/vue/vue/dist/index.d.ts +1392 -0
  38. package/vue/vue/package.json +96 -0
  39. package/vue2/dist/cypress-vue2.cjs.js +1 -1
  40. package/vue2/dist/cypress-vue2.esm-bundler.js +1 -1
  41. package/vue2/package.json +13 -1
  42. package/vue2/vue2/README.md +7 -0
  43. package/vue2/vue2/dist/cypress-vue2.cjs.js +20045 -0
  44. package/vue2/vue2/dist/cypress-vue2.esm-bundler.js +20042 -0
  45. package/vue2/vue2/dist/index.d.ts +364 -0
  46. package/vue2/vue2/package.json +65 -0
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@cypress/react18",
3
+ "version": "0.0.0-development",
4
+ "description": "Test React components using Cypress",
5
+ "main": "dist/cypress-react.cjs.js",
6
+ "scripts": {
7
+ "build": "rimraf dist && rollup -c rollup.config.mjs",
8
+ "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
9
+ "check-ts": "tsc --noEmit",
10
+ "watch": "yarn build --watch --watch.exclude ./dist/**/*",
11
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, ."
12
+ },
13
+ "devDependencies": {
14
+ "@cypress/mount-utils": "0.0.0-development",
15
+ "@cypress/react": "0.0.0-development",
16
+ "@rollup/plugin-commonjs": "^17.1.0",
17
+ "@rollup/plugin-node-resolve": "^11.1.1",
18
+ "@types/react": "^16",
19
+ "@types/react-dom": "^16",
20
+ "cypress": "0.0.0-development",
21
+ "react": "^16",
22
+ "react-dom": "^16",
23
+ "rollup": "3.7.3",
24
+ "rollup-plugin-typescript2": "^0.29.0",
25
+ "typescript": "^4.7.4"
26
+ },
27
+ "peerDependencies": {
28
+ "@types/react": "^18",
29
+ "@types/react-dom": "^18",
30
+ "cypress": "*",
31
+ "react": "^18",
32
+ "react-dom": "^18"
33
+ },
34
+ "files": [
35
+ "dist"
36
+ ],
37
+ "types": "dist/index.d.ts",
38
+ "license": "MIT",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/cypress-io/cypress.git"
42
+ },
43
+ "homepage": "https://github.com/cypress-io/cypress/blob/develop/npm/react18/#readme",
44
+ "bugs": "https://github.com/cypress-io/cypress/issues/new?assignees=&labels=npm%3A%20%40cypress%2Freact18&template=1-bug-report.md&title=",
45
+ "keywords": [
46
+ "react",
47
+ "cypress",
48
+ "cypress-io",
49
+ "test",
50
+ "testing"
51
+ ],
52
+ "module": "dist/cypress-react.esm-bundler.js",
53
+ "peerDependenciesMeta": {
54
+ "@types/react": {
55
+ "optional": true
56
+ }
57
+ },
58
+ "publishConfig": {
59
+ "access": "public"
60
+ },
61
+ "nx": {
62
+ "targets": {
63
+ "build": {
64
+ "outputs": [
65
+ "{workspaceRoot}/cli/react18",
66
+ "{projectRoot}/dist"
67
+ ]
68
+ }
69
+ }
70
+ }
71
+ }
@@ -7,7 +7,6 @@
7
7
  "prebuild": "rimraf dist",
8
8
  "build": "rollup -c rollup.config.mjs",
9
9
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
10
- "build-prod": "yarn build",
11
10
  "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, .",
12
11
  "check-ts": "tsc --noEmit"
13
12
  },
@@ -40,5 +39,18 @@
40
39
  "module": "dist/cypress-svelte.esm-bundler.js",
41
40
  "publishConfig": {
42
41
  "access": "public"
42
+ },
43
+ "nx": {
44
+ "targets": {
45
+ "build": {
46
+ "outputs": [
47
+ "{workspaceRoot}/cli/svelte",
48
+ "{projectRoot}/dist"
49
+ ]
50
+ }
51
+ },
52
+ "implicitDependencies": [
53
+ "!cypress"
54
+ ]
43
55
  }
44
56
  }
@@ -0,0 +1,15 @@
1
+ # @cypress/svelte
2
+
3
+ Mount Svelte components in the open source [Cypress.io](https://www.cypress.io/) test runner **v10.7.0+**
4
+
5
+ > **Note:** This package is bundled with the `cypress` package and should not need to be installed separately. See the [Svelte Component Testing Docs](https://docs.cypress.io/guides/component-testing/svelte/overview) for mounting Svelte components. Installing and importing `mount` from `@cypress/svelte` should only be done for advanced use-cases.
6
+
7
+ ## Development
8
+
9
+ Run `yarn build` to compile and sync packages to the `cypress` cli package.
10
+
11
+ Run `yarn cy:open` to open Cypress component testing against real-world examples.
12
+
13
+ Run `yarn test` to execute headless Cypress tests.
14
+
15
+ ## [Changelog](./CHANGELOG.md)
@@ -0,0 +1,122 @@
1
+
2
+ /**
3
+ * @cypress/svelte v0.0.0-development
4
+ * (c) 2023 Cypress.io
5
+ * Released under the MIT License
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ const ROOT_SELECTOR = '[data-cy-root]';
11
+ /**
12
+ * Gets the root element used to mount the component.
13
+ * @returns {HTMLElement} The root element
14
+ * @throws {Error} If the root element is not found
15
+ */
16
+ const getContainerEl = () => {
17
+ const el = document.querySelector(ROOT_SELECTOR);
18
+ if (el) {
19
+ return el;
20
+ }
21
+ throw Error(`No element found that matches selector ${ROOT_SELECTOR}. Please add a root element with data-cy-root attribute to your "component-index.html" file so that Cypress can attach your component to the DOM.`);
22
+ };
23
+ function checkForRemovedStyleOptions(mountingOptions) {
24
+ for (const key of ['cssFile', 'cssFiles', 'style', 'styles', 'stylesheet', 'stylesheets']) {
25
+ if (mountingOptions[key]) {
26
+ Cypress.utils.throwErrByPath('mount.removed_style_mounting_options', key);
27
+ }
28
+ }
29
+ }
30
+ /**
31
+ * Utility function to register CT side effects and run cleanup code during the "test:before:run" Cypress hook
32
+ * @param optionalCallback Callback to be called before the next test runs
33
+ */
34
+ function setupHooks(optionalCallback) {
35
+ // We don't want CT side effects to run when e2e
36
+ // testing so we early return.
37
+ // System test to verify CT side effects do not pollute e2e: system-tests/test/e2e_with_mount_import_spec.ts
38
+ if (Cypress.testingType !== 'component') {
39
+ return;
40
+ }
41
+ // When running component specs, we cannot allow "cy.visit"
42
+ // because it will wipe out our preparation work, and does not make much sense
43
+ // thus we overwrite "cy.visit" to throw an error
44
+ Cypress.Commands.overwrite('visit', () => {
45
+ throw new Error('cy.visit from a component spec is not allowed');
46
+ });
47
+ Cypress.Commands.overwrite('session', () => {
48
+ throw new Error('cy.session from a component spec is not allowed');
49
+ });
50
+ Cypress.Commands.overwrite('origin', () => {
51
+ throw new Error('cy.origin from a component spec is not allowed');
52
+ });
53
+ // @ts-ignore
54
+ Cypress.on('test:before:after:run:async', () => {
55
+ optionalCallback === null || optionalCallback === void 0 ? void 0 : optionalCallback();
56
+ });
57
+ }
58
+
59
+ const DEFAULT_COMP_NAME = 'unknown';
60
+ let componentInstance;
61
+ const cleanup = () => {
62
+ componentInstance === null || componentInstance === void 0 ? void 0 : componentInstance.$destroy();
63
+ };
64
+ // Extract the component name from the object passed to mount
65
+ const getComponentDisplayName = (Component) => {
66
+ if (Component.name) {
67
+ const [, match] = /Proxy\<(\w+)\>/.exec(Component.name) || [];
68
+ return match || Component.name;
69
+ }
70
+ return DEFAULT_COMP_NAME;
71
+ };
72
+ /**
73
+ * Mounts a Svelte component inside the Cypress browser
74
+ *
75
+ * @param {SvelteConstructor<T>} Component Svelte component being mounted
76
+ * @param {MountReturn<T extends SvelteComponent>} options options to customize the component being mounted
77
+ * @returns Cypress.Chainable<MountReturn>
78
+ *
79
+ * @example
80
+ * import Counter from './Counter.svelte'
81
+ * import { mount } from 'cypress/svelte'
82
+ *
83
+ * it('should render', () => {
84
+ * mount(Counter, { props: { count: 42 } })
85
+ * cy.get('button').contains(42)
86
+ * })
87
+ *
88
+ * @see {@link https://on.cypress.io/mounting-svelte} for more details.
89
+ */
90
+ function mount(Component, options = {}) {
91
+ checkForRemovedStyleOptions(options);
92
+ return cy.then(() => {
93
+ // Remove last mounted component if cy.mount is called more than once in a test
94
+ cleanup();
95
+ const target = getContainerEl();
96
+ const ComponentConstructor = (Component.default || Component);
97
+ componentInstance = new ComponentConstructor(Object.assign({ target }, options));
98
+ // by waiting, we are delaying test execution for the next tick of event loop
99
+ // and letting hooks and component lifecycle methods to execute mount
100
+ return cy.wait(0, { log: false }).then(() => {
101
+ if (options.log !== false) {
102
+ const mountMessage = `<${getComponentDisplayName(Component)} ... />`;
103
+ Cypress.log({
104
+ name: 'mount',
105
+ message: [mountMessage],
106
+ });
107
+ }
108
+ })
109
+ .wrap({ component: componentInstance }, { log: false });
110
+ });
111
+ }
112
+ // Side effects from "import { mount } from '@cypress/<my-framework>'" are annoying, we should avoid doing this
113
+ // by creating an explicit function/import that the user can register in their 'component.js' support file,
114
+ // such as:
115
+ // import 'cypress/<my-framework>/support'
116
+ // or
117
+ // import { registerCT } from 'cypress/<my-framework>'
118
+ // registerCT()
119
+ // Note: This would be a breaking change
120
+ setupHooks(cleanup);
121
+
122
+ exports.mount = mount;
@@ -0,0 +1,120 @@
1
+
2
+ /**
3
+ * @cypress/svelte v0.0.0-development
4
+ * (c) 2023 Cypress.io
5
+ * Released under the MIT License
6
+ */
7
+
8
+ const ROOT_SELECTOR = '[data-cy-root]';
9
+ /**
10
+ * Gets the root element used to mount the component.
11
+ * @returns {HTMLElement} The root element
12
+ * @throws {Error} If the root element is not found
13
+ */
14
+ const getContainerEl = () => {
15
+ const el = document.querySelector(ROOT_SELECTOR);
16
+ if (el) {
17
+ return el;
18
+ }
19
+ throw Error(`No element found that matches selector ${ROOT_SELECTOR}. Please add a root element with data-cy-root attribute to your "component-index.html" file so that Cypress can attach your component to the DOM.`);
20
+ };
21
+ function checkForRemovedStyleOptions(mountingOptions) {
22
+ for (const key of ['cssFile', 'cssFiles', 'style', 'styles', 'stylesheet', 'stylesheets']) {
23
+ if (mountingOptions[key]) {
24
+ Cypress.utils.throwErrByPath('mount.removed_style_mounting_options', key);
25
+ }
26
+ }
27
+ }
28
+ /**
29
+ * Utility function to register CT side effects and run cleanup code during the "test:before:run" Cypress hook
30
+ * @param optionalCallback Callback to be called before the next test runs
31
+ */
32
+ function setupHooks(optionalCallback) {
33
+ // We don't want CT side effects to run when e2e
34
+ // testing so we early return.
35
+ // System test to verify CT side effects do not pollute e2e: system-tests/test/e2e_with_mount_import_spec.ts
36
+ if (Cypress.testingType !== 'component') {
37
+ return;
38
+ }
39
+ // When running component specs, we cannot allow "cy.visit"
40
+ // because it will wipe out our preparation work, and does not make much sense
41
+ // thus we overwrite "cy.visit" to throw an error
42
+ Cypress.Commands.overwrite('visit', () => {
43
+ throw new Error('cy.visit from a component spec is not allowed');
44
+ });
45
+ Cypress.Commands.overwrite('session', () => {
46
+ throw new Error('cy.session from a component spec is not allowed');
47
+ });
48
+ Cypress.Commands.overwrite('origin', () => {
49
+ throw new Error('cy.origin from a component spec is not allowed');
50
+ });
51
+ // @ts-ignore
52
+ Cypress.on('test:before:after:run:async', () => {
53
+ optionalCallback === null || optionalCallback === void 0 ? void 0 : optionalCallback();
54
+ });
55
+ }
56
+
57
+ const DEFAULT_COMP_NAME = 'unknown';
58
+ let componentInstance;
59
+ const cleanup = () => {
60
+ componentInstance === null || componentInstance === void 0 ? void 0 : componentInstance.$destroy();
61
+ };
62
+ // Extract the component name from the object passed to mount
63
+ const getComponentDisplayName = (Component) => {
64
+ if (Component.name) {
65
+ const [, match] = /Proxy\<(\w+)\>/.exec(Component.name) || [];
66
+ return match || Component.name;
67
+ }
68
+ return DEFAULT_COMP_NAME;
69
+ };
70
+ /**
71
+ * Mounts a Svelte component inside the Cypress browser
72
+ *
73
+ * @param {SvelteConstructor<T>} Component Svelte component being mounted
74
+ * @param {MountReturn<T extends SvelteComponent>} options options to customize the component being mounted
75
+ * @returns Cypress.Chainable<MountReturn>
76
+ *
77
+ * @example
78
+ * import Counter from './Counter.svelte'
79
+ * import { mount } from 'cypress/svelte'
80
+ *
81
+ * it('should render', () => {
82
+ * mount(Counter, { props: { count: 42 } })
83
+ * cy.get('button').contains(42)
84
+ * })
85
+ *
86
+ * @see {@link https://on.cypress.io/mounting-svelte} for more details.
87
+ */
88
+ function mount(Component, options = {}) {
89
+ checkForRemovedStyleOptions(options);
90
+ return cy.then(() => {
91
+ // Remove last mounted component if cy.mount is called more than once in a test
92
+ cleanup();
93
+ const target = getContainerEl();
94
+ const ComponentConstructor = (Component.default || Component);
95
+ componentInstance = new ComponentConstructor(Object.assign({ target }, options));
96
+ // by waiting, we are delaying test execution for the next tick of event loop
97
+ // and letting hooks and component lifecycle methods to execute mount
98
+ return cy.wait(0, { log: false }).then(() => {
99
+ if (options.log !== false) {
100
+ const mountMessage = `<${getComponentDisplayName(Component)} ... />`;
101
+ Cypress.log({
102
+ name: 'mount',
103
+ message: [mountMessage],
104
+ });
105
+ }
106
+ })
107
+ .wrap({ component: componentInstance }, { log: false });
108
+ });
109
+ }
110
+ // Side effects from "import { mount } from '@cypress/<my-framework>'" are annoying, we should avoid doing this
111
+ // by creating an explicit function/import that the user can register in their 'component.js' support file,
112
+ // such as:
113
+ // import 'cypress/<my-framework>/support'
114
+ // or
115
+ // import { registerCT } from 'cypress/<my-framework>'
116
+ // registerCT()
117
+ // Note: This would be a breaking change
118
+ setupHooks(cleanup);
119
+
120
+ export { mount };
@@ -0,0 +1,201 @@
1
+ /// <reference types="cypress" />
2
+
3
+ declare module '*.svelte' {
4
+ export { SvelteComponentDev as default } from 'svelte/internal';
5
+ }
6
+
7
+ /**
8
+ * INTERNAL, DO NOT USE. Code may change at any time.
9
+ */
10
+ interface Fragment {
11
+ key: string | null;
12
+ first: null;
13
+ c: () => void;
14
+ l: (nodes: any) => void;
15
+ h: () => void;
16
+ m: (target: HTMLElement, anchor: any) => void;
17
+ p: (ctx: any, dirty: any) => void;
18
+ r: () => void;
19
+ f: () => void;
20
+ a: () => void;
21
+ i: (local: any) => void;
22
+ o: (local: any) => void;
23
+ d: (detaching: 0 | 1) => void;
24
+ }
25
+ interface T$$ {
26
+ dirty: number[];
27
+ ctx: null | any;
28
+ bound: any;
29
+ update: () => void;
30
+ callbacks: any;
31
+ after_update: any[];
32
+ props: Record<string, 0 | string>;
33
+ fragment: null | false | Fragment;
34
+ not_equal: any;
35
+ before_update: any[];
36
+ context: Map<any, any>;
37
+ on_mount: any[];
38
+ on_destroy: any[];
39
+ skip_bound: boolean;
40
+ on_disconnect: any[];
41
+ root: Element | ShadowRoot;
42
+ }
43
+ /**
44
+ * Base class for Svelte components. Used when dev=false.
45
+ */
46
+ declare class SvelteComponent {
47
+ $$: T$$;
48
+ $$set?: ($$props: any) => void;
49
+ $destroy(): void;
50
+ $on(type: any, callback: any): () => void;
51
+ $set($$props: any): void;
52
+ }
53
+
54
+ declare type Props = Record<string, any>;
55
+ interface ComponentConstructorOptions<Props extends Record<string, any> = Record<string, any>> {
56
+ target: Element | ShadowRoot;
57
+ anchor?: Element;
58
+ props?: Props;
59
+ context?: Map<any, any>;
60
+ hydrate?: boolean;
61
+ intro?: boolean;
62
+ $$inline?: boolean;
63
+ }
64
+ interface SvelteComponentDev$1 {
65
+ $set(props?: Props): void;
66
+ $on(event: string, callback: (event: any) => void): () => void;
67
+ $destroy(): void;
68
+ [accessor: string]: any;
69
+ }
70
+ /**
71
+ * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.
72
+ */
73
+ declare class SvelteComponentDev$1 extends SvelteComponent {
74
+ /**
75
+ * @private
76
+ * For type checking capabilities only.
77
+ * Does not exist at runtime.
78
+ * ### DO NOT USE!
79
+ */
80
+ $$prop_def: Props;
81
+ /**
82
+ * @private
83
+ * For type checking capabilities only.
84
+ * Does not exist at runtime.
85
+ * ### DO NOT USE!
86
+ */
87
+ $$events_def: any;
88
+ /**
89
+ * @private
90
+ * For type checking capabilities only.
91
+ * Does not exist at runtime.
92
+ * ### DO NOT USE!
93
+ */
94
+ $$slot_def: any;
95
+ constructor(options: ComponentConstructorOptions);
96
+ $capture_state(): void;
97
+ $inject_state(): void;
98
+ }
99
+ interface SvelteComponentTyped<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any> {
100
+ $set(props?: Partial<Props>): void;
101
+ $on<K extends Extract<keyof Events, string>>(type: K, callback: (e: Events[K]) => void): () => void;
102
+ $destroy(): void;
103
+ [accessor: string]: any;
104
+ }
105
+ /**
106
+ * Base class to create strongly typed Svelte components.
107
+ * This only exists for typing purposes and should be used in `.d.ts` files.
108
+ *
109
+ * ### Example:
110
+ *
111
+ * You have component library on npm called `component-library`, from which
112
+ * you export a component called `MyComponent`. For Svelte+TypeScript users,
113
+ * you want to provide typings. Therefore you create a `index.d.ts`:
114
+ * ```ts
115
+ * import { SvelteComponentTyped } from "svelte";
116
+ * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}
117
+ * ```
118
+ * Typing this makes it possible for IDEs like VS Code with the Svelte extension
119
+ * to provide intellisense and to use the component like this in a Svelte file
120
+ * with TypeScript:
121
+ * ```svelte
122
+ * <script lang="ts">
123
+ * import { MyComponent } from "component-library";
124
+ * </script>
125
+ * <MyComponent foo={'bar'} />
126
+ * ```
127
+ *
128
+ * #### Why not make this part of `SvelteComponent(Dev)`?
129
+ * Because
130
+ * ```ts
131
+ * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}
132
+ * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;
133
+ * ```
134
+ * will throw a type error, so we need to separate the more strictly typed class.
135
+ */
136
+ declare class SvelteComponentTyped<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any> extends SvelteComponentDev$1 {
137
+ /**
138
+ * @private
139
+ * For type checking capabilities only.
140
+ * Does not exist at runtime.
141
+ * ### DO NOT USE!
142
+ */
143
+ $$prop_def: Props;
144
+ /**
145
+ * @private
146
+ * For type checking capabilities only.
147
+ * Does not exist at runtime.
148
+ * ### DO NOT USE!
149
+ */
150
+ $$events_def: Events;
151
+ /**
152
+ * @private
153
+ * For type checking capabilities only.
154
+ * Does not exist at runtime.
155
+ * ### DO NOT USE!
156
+ */
157
+ $$slot_def: Slots;
158
+ constructor(options: ComponentConstructorOptions<Props>);
159
+ }
160
+ /**
161
+ * Convenience type to get the props the given component expects. Example:
162
+ * ```html
163
+ * <script lang="ts">
164
+ * import type { ComponentProps } from 'svelte';
165
+ * import Component from './Component.svelte';
166
+ *
167
+ * const props: ComponentProps<Component> = { foo: 'bar' }; // Errors if these aren't the correct props
168
+ * </script>
169
+ * ```
170
+ */
171
+ declare type ComponentProps<Component extends SvelteComponent> = Component extends SvelteComponentTyped<infer Props> ? Props : never;
172
+
173
+ declare type SvelteConstructor<T> = new (...args: any[]) => T;
174
+ declare type SvelteComponentOptions<T extends SvelteComponentDev$1> = Omit<ComponentConstructorOptions<ComponentProps<T>>, 'hydrate' | 'target' | '$$inline'>;
175
+ interface MountOptions<T extends SvelteComponentDev$1> extends SvelteComponentOptions<T> {
176
+ log?: boolean;
177
+ }
178
+ interface MountReturn<T extends SvelteComponentDev$1> {
179
+ component: T;
180
+ }
181
+ /**
182
+ * Mounts a Svelte component inside the Cypress browser
183
+ *
184
+ * @param {SvelteConstructor<T>} Component Svelte component being mounted
185
+ * @param {MountReturn<T extends SvelteComponent>} options options to customize the component being mounted
186
+ * @returns Cypress.Chainable<MountReturn>
187
+ *
188
+ * @example
189
+ * import Counter from './Counter.svelte'
190
+ * import { mount } from 'cypress/svelte'
191
+ *
192
+ * it('should render', () => {
193
+ * mount(Counter, { props: { count: 42 } })
194
+ * cy.get('button').contains(42)
195
+ * })
196
+ *
197
+ * @see {@link https://on.cypress.io/mounting-svelte} for more details.
198
+ */
199
+ declare function mount<T extends SvelteComponentDev$1>(Component: SvelteConstructor<T>, options?: MountOptions<T>): Cypress.Chainable<MountReturn<T>>;
200
+
201
+ export { MountOptions, MountReturn, mount };
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@cypress/svelte",
3
+ "version": "0.0.0-development",
4
+ "description": "Browser-based Component Testing for Svelte.js with Cypress.io ๐Ÿงก",
5
+ "main": "dist/cypress-svelte.cjs.js",
6
+ "scripts": {
7
+ "prebuild": "rimraf dist",
8
+ "build": "rollup -c rollup.config.mjs",
9
+ "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
10
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, .",
11
+ "check-ts": "tsc --noEmit"
12
+ },
13
+ "devDependencies": {
14
+ "@cypress/mount-utils": "0.0.0-development",
15
+ "svelte": "^3.49.0",
16
+ "typescript": "^4.7.4"
17
+ },
18
+ "peerDependencies": {
19
+ "cypress": ">=10.6.0",
20
+ "svelte": ">=3.0.0"
21
+ },
22
+ "files": [
23
+ "dist/**/*"
24
+ ],
25
+ "types": "dist/index.d.ts",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/cypress-io/cypress.git"
30
+ },
31
+ "homepage": "https://github.com/cypress-io/cypress/blob/develop/npm/svelte/#readme",
32
+ "bugs": "https://github.com/cypress-io/cypress/issues/new?assignees=&labels=npm%3A%20%40cypress%2Fsvelte&template=1-bug-report.md&title=",
33
+ "keywords": [
34
+ "cypress",
35
+ "svelte",
36
+ "testing",
37
+ "component testing"
38
+ ],
39
+ "module": "dist/cypress-svelte.esm-bundler.js",
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "nx": {
44
+ "targets": {
45
+ "build": {
46
+ "outputs": [
47
+ "{workspaceRoot}/cli/svelte",
48
+ "{projectRoot}/dist"
49
+ ]
50
+ }
51
+ },
52
+ "implicitDependencies": [
53
+ "!cypress"
54
+ ]
55
+ }
56
+ }
@@ -3318,7 +3318,7 @@ declare namespace Cypress {
3318
3318
 
3319
3319
  interface CypressComponentDependency {
3320
3320
  /**
3321
- * Unique idenitifer.
3321
+ * Unique identifier.
3322
3322
  * @example 'reactscripts'
3323
3323
  */
3324
3324
  type: string
@@ -3453,7 +3453,7 @@ declare namespace Cypress {
3453
3453
  componentIndexHtml?: () => string
3454
3454
 
3455
3455
  /**
3456
- * Used for the Create From Comopnent feature.
3456
+ * Used for the Create From Component feature.
3457
3457
  * This is currently not supported for third party frameworks.
3458
3458
  */
3459
3459
  specPattern?: '**/*.cy.ts'
package/vue/package.json CHANGED
@@ -4,7 +4,6 @@
4
4
  "description": "Browser-based Component Testing for Vue.js with Cypress.io โœŒ๏ธ๐ŸŒฒ",
5
5
  "main": "dist/cypress-vue.cjs.js",
6
6
  "scripts": {
7
- "build-prod": "yarn build",
8
7
  "cy:open": "node ../../scripts/cypress.js open --component --project ${PWD}",
9
8
  "cy:run": "node ../../scripts/cypress.js run --component --project ${PWD}",
10
9
  "build": "rimraf dist && rollup -c rollup.config.mjs",
@@ -80,5 +79,18 @@
80
79
  },
81
80
  "publishConfig": {
82
81
  "access": "public"
82
+ },
83
+ "nx": {
84
+ "targets": {
85
+ "build": {
86
+ "dependsOn": [
87
+ "!@cypress/react18:build"
88
+ ],
89
+ "outputs": [
90
+ "{workspaceRoot}/cli/vue",
91
+ "{projectRoot}/dist"
92
+ ]
93
+ }
94
+ }
83
95
  }
84
96
  }
@@ -0,0 +1,14 @@
1
+ # @cypress/vue
2
+
3
+ Mount Vue 3 components in the open source [Cypress.io](https://www.cypress.io/) test runner
4
+
5
+ > **Note:** This package is bundled with the `cypress` package and should not need to be installed separately. See the [Vue Component Testing Docs](https://docs.cypress.io/guides/component-testing/vue/overview) for mounting Vue components. Installing and importing `mount` from `@cypress/vue` should only be done for advanced use-cases.
6
+ ## Development
7
+
8
+ Run `yarn build` to compile and sync packages to the `cypress` cli package.
9
+
10
+ Run `yarn cy:open` to open Cypress component testing against real-world examples.
11
+
12
+ Run `yarn test` to execute headless Cypress tests.
13
+
14
+ ## [Changelog](./CHANGELOG.md)