cypress 13.3.0 โ†’ 13.3.2

Sign up to get free protection for your applications and to get access to all the features.
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 +19 -3
  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)