@bagaar/ember-graphql-mocking 0.11.0 → 0.11.2
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
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Release (2025-02-05)
|
|
4
|
+
|
|
5
|
+
@bagaar/ember-graphql-mocking 0.11.1 (patch)
|
|
6
|
+
|
|
7
|
+
#### :house: Internal
|
|
8
|
+
* Other
|
|
9
|
+
* [#198](https://github.com/Bagaar/ember-graphql-mocking/pull/198) Set up Release Plan ([@bertdeblock](https://github.com/bertdeblock))
|
|
10
|
+
* `@bagaar/ember-graphql-mocking`
|
|
11
|
+
* [#197](https://github.com/Bagaar/ember-graphql-mocking/pull/197) Update `release-it` setup ([@bertdeblock](https://github.com/bertdeblock))
|
|
12
|
+
|
|
13
|
+
#### Committers: 1
|
|
14
|
+
- Bert De Block ([@bertdeblock](https://github.com/bertdeblock))
|
|
1
15
|
|
|
2
16
|
## v0.11.0 (2024-03-06)
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ yarn add -D @bagaar/ember-graphql-mocking msw
|
|
|
27
27
|
|
|
28
28
|
## Usage
|
|
29
29
|
|
|
30
|
-
### 1. Set up
|
|
30
|
+
### 1. Set up @bagaar/ember-graphql-mocking
|
|
31
31
|
|
|
32
32
|
In `tests/test-helper.js`:
|
|
33
33
|
1. Import `setupEmberGraphqlMocking`
|
|
@@ -92,7 +92,7 @@ import { visit, currentURL } from '@ember/test-helpers';
|
|
|
92
92
|
import { setupApplicationTest } from 'my-app/tests/helpers';
|
|
93
93
|
import { mockResolvers, setupGraphqlTest } from '@bagaar/ember-graphql-mocking/test-support'; // 1.
|
|
94
94
|
|
|
95
|
-
module('Acceptance | ember
|
|
95
|
+
module('Acceptance | ember-graphql-mocking', function (hooks) {
|
|
96
96
|
setupApplicationTest(hooks);
|
|
97
97
|
setupGraphqlTest(hooks); // 2.
|
|
98
98
|
|
|
@@ -7,11 +7,12 @@ type Hooks = {
|
|
|
7
7
|
after(fn: () => void | Promise<void>): void;
|
|
8
8
|
afterEach(fn: () => void | Promise<void>): void;
|
|
9
9
|
before(fn: () => void | Promise<void>): void;
|
|
10
|
+
beforeEach(fn: () => void | Promise<void>): void;
|
|
10
11
|
};
|
|
11
12
|
export declare function setupEmberGraphqlMocking(schemaDocument: DocumentNode, providedOptions?: Options): Promise<void>;
|
|
12
13
|
export declare function setupGraphqlTest(hooks: Hooks): void;
|
|
13
14
|
export declare function mockResolvers(resolvers: object): void;
|
|
14
15
|
export declare function getWorker(): SetupWorker;
|
|
15
|
-
export declare function
|
|
16
|
+
export declare function stopWorker(): void;
|
|
16
17
|
export {};
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-support/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-support/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/E,UAAU,OAAO;IACf,eAAe,EAAE,YAAY,CAAC;CAC/B;AAID,KAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD,CAAC;AAmBF,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,YAAY,EAC5B,eAAe,CAAC,EAAE,OAAO,iBAK1B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,QAsB5C;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,QAO9C;AAED,wBAAgB,SAAS,gBAOxB;AAED,wBAAgB,UAAU,SAOzB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { assert } from '@ember/debug';
|
|
2
2
|
import { buildASTSchema, graphql as graphql$1 } from 'graphql';
|
|
3
|
-
import merge from 'lodash.merge';
|
|
4
3
|
import { graphql, HttpResponse } from 'msw';
|
|
5
4
|
import { setupWorker } from 'msw/browser';
|
|
6
5
|
|
|
@@ -18,11 +17,14 @@ const DEFAULT_OPTIONS = {
|
|
|
18
17
|
let isSetupGraphqlTestCalled = false;
|
|
19
18
|
let root = null;
|
|
20
19
|
let worker = null;
|
|
20
|
+
let options = null;
|
|
21
21
|
async function setupEmberGraphqlMocking(schemaDocument, providedOptions) {
|
|
22
|
-
|
|
22
|
+
options = {
|
|
23
|
+
...DEFAULT_OPTIONS,
|
|
24
|
+
...providedOptions
|
|
25
|
+
};
|
|
23
26
|
createWorker();
|
|
24
27
|
createGraphqlOperationHandler(schemaDocument);
|
|
25
|
-
await startWorker(options.mswStartOptions);
|
|
26
28
|
}
|
|
27
29
|
function setupGraphqlTest(hooks) {
|
|
28
30
|
assert('Cannot call `setupGraphqlTest` without providing the `hooks` argument. Please make sure to call `setupGraphqlTest(hooks);`.', hooks);
|
|
@@ -32,7 +34,13 @@ function setupGraphqlTest(hooks) {
|
|
|
32
34
|
hooks.after(() => {
|
|
33
35
|
isSetupGraphqlTestCalled = false;
|
|
34
36
|
});
|
|
35
|
-
hooks.
|
|
37
|
+
hooks.beforeEach(async () => {
|
|
38
|
+
await startWorker(options?.mswStartOptions || {});
|
|
39
|
+
});
|
|
40
|
+
hooks.afterEach(() => {
|
|
41
|
+
stopWorker();
|
|
42
|
+
clearRoot();
|
|
43
|
+
});
|
|
36
44
|
}
|
|
37
45
|
function mockResolvers(resolvers) {
|
|
38
46
|
assert('Cannot call `mockResolvers` before calling `setupGraphqlTest`. Please make sure to call `setupGraphqlTest(hooks);`.', isSetupGraphqlTestCalled);
|
|
@@ -45,10 +53,9 @@ function getWorker() {
|
|
|
45
53
|
assert('Cannot call `getWorker` before calling `setupEmberGraphqlMocking`. Please make sure to call `setupEmberGraphqlMocking(yourSchemaDocument[, yourProvidedOptions]);`.', worker);
|
|
46
54
|
return worker;
|
|
47
55
|
}
|
|
48
|
-
function
|
|
56
|
+
function stopWorker() {
|
|
49
57
|
assert('Cannot call `destroyWorker` before calling `setupEmberGraphqlMocking`. Please make sure to call `setupEmberGraphqlMocking(yourSchemaDocument[, yourProvidedOptions]);`.', worker);
|
|
50
58
|
worker.stop();
|
|
51
|
-
worker = null;
|
|
52
59
|
}
|
|
53
60
|
function createWorker() {
|
|
54
61
|
worker = setupWorker();
|
|
@@ -75,6 +82,8 @@ function createGraphqlOperationHandler(schemaDocument) {
|
|
|
75
82
|
source: query,
|
|
76
83
|
variableValues: variables
|
|
77
84
|
});
|
|
85
|
+
|
|
86
|
+
// @ts-expect-error latest versions of msw return a type which is ObjMap<unknown> | null | undefined, which seems incompatible with the .json() method
|
|
78
87
|
return HttpResponse.json({
|
|
79
88
|
data,
|
|
80
89
|
errors
|
|
@@ -90,5 +99,5 @@ function clearRoot() {
|
|
|
90
99
|
root = null;
|
|
91
100
|
}
|
|
92
101
|
|
|
93
|
-
export {
|
|
102
|
+
export { getWorker, mockResolvers, setupEmberGraphqlMocking, setupGraphqlTest, stopWorker };
|
|
94
103
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/test-support/index.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { buildASTSchema, graphql, type DocumentNode } from 'graphql';\nimport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/test-support/index.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport { buildASTSchema, graphql, type DocumentNode } from 'graphql';\nimport { graphql as mswGraphql, HttpResponse } from 'msw';\nimport { setupWorker, type SetupWorker, type StartOptions } from 'msw/browser';\n\ninterface Options {\n mswStartOptions: StartOptions;\n}\n\ntype WindowWithTestem = typeof window & { Testem: unknown };\n\ntype Hooks = {\n after(fn: () => void | Promise<void>): void;\n afterEach(fn: () => void | Promise<void>): void;\n before(fn: () => void | Promise<void>): void;\n beforeEach(fn: () => void | Promise<void>): void;\n};\n\nconst IS_TESTEM = Boolean((window as WindowWithTestem).Testem);\nconst DEFAULT_OPTIONS: Options = {\n mswStartOptions: {\n quiet: IS_TESTEM,\n serviceWorker: {\n options: {\n scope: IS_TESTEM ? window.location.pathname : '/tests',\n },\n },\n },\n};\n\nlet isSetupGraphqlTestCalled = false;\nlet root: object | null = null;\nlet worker: SetupWorker | null = null;\nlet options: Options | null = null;\n\nexport async function setupEmberGraphqlMocking(\n schemaDocument: DocumentNode,\n providedOptions?: Options,\n) {\n options = { ...DEFAULT_OPTIONS, ...providedOptions };\n createWorker();\n createGraphqlOperationHandler(schemaDocument);\n}\n\nexport function setupGraphqlTest(hooks: Hooks) {\n assert(\n 'Cannot call `setupGraphqlTest` without providing the `hooks` argument. Please make sure to call `setupGraphqlTest(hooks);`.',\n hooks,\n );\n\n hooks.before(() => {\n isSetupGraphqlTestCalled = true;\n });\n\n hooks.after(() => {\n isSetupGraphqlTestCalled = false;\n });\n\n hooks.beforeEach(async () => {\n await startWorker(options?.mswStartOptions || {});\n });\n\n hooks.afterEach(() => {\n stopWorker();\n clearRoot();\n });\n}\n\nexport function mockResolvers(resolvers: object) {\n assert(\n 'Cannot call `mockResolvers` before calling `setupGraphqlTest`. Please make sure to call `setupGraphqlTest(hooks);`.',\n isSetupGraphqlTestCalled,\n );\n\n root = { ...root, ...resolvers };\n}\n\nexport function getWorker() {\n assert(\n 'Cannot call `getWorker` before calling `setupEmberGraphqlMocking`. Please make sure to call `setupEmberGraphqlMocking(yourSchemaDocument[, yourProvidedOptions]);`.',\n worker,\n );\n\n return worker;\n}\n\nexport function stopWorker() {\n assert(\n 'Cannot call `destroyWorker` before calling `setupEmberGraphqlMocking`. Please make sure to call `setupEmberGraphqlMocking(yourSchemaDocument[, yourProvidedOptions]);`.',\n worker,\n );\n\n worker.stop();\n}\n\nfunction createWorker() {\n worker = setupWorker();\n}\n\nfunction createGraphqlOperationHandler(schemaDocument: DocumentNode) {\n assert('[BUG] `worker` is not set.', worker);\n\n const schema = buildASTSchema(schemaDocument);\n const graphqlOperation = mswGraphql.operation(async ({ request }) => {\n const { query, variables } = (await request.json()) || {\n query: '',\n variables: {},\n };\n\n const { data, errors } = await graphql({\n rootValue: root,\n schema,\n source: query,\n variableValues: variables,\n });\n\n // @ts-expect-error latest versions of msw return a type which is ObjMap<unknown> | null | undefined, which seems incompatible with the .json() method\n return HttpResponse.json({ data, errors });\n });\n\n worker.use(graphqlOperation);\n}\n\nasync function startWorker(mswStartOptions: Options['mswStartOptions']) {\n assert('[BUG] `worker` is not set.', worker);\n\n await worker.start(mswStartOptions);\n}\n\nfunction clearRoot() {\n root = null;\n}\n"],"names":["IS_TESTEM","Boolean","window","Testem","DEFAULT_OPTIONS","mswStartOptions","quiet","serviceWorker","options","scope","location","pathname","isSetupGraphqlTestCalled","root","worker","setupEmberGraphqlMocking","schemaDocument","providedOptions","createWorker","createGraphqlOperationHandler","setupGraphqlTest","hooks","assert","before","after","beforeEach","startWorker","afterEach","stopWorker","clearRoot","mockResolvers","resolvers","getWorker","stop","setupWorker","schema","buildASTSchema","graphqlOperation","mswGraphql","operation","request","query","variables","json","data","errors","graphql","rootValue","source","variableValues","HttpResponse","use","start"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bagaar/ember-graphql-mocking",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"description": "Ember addon for mocking GraphQL requests using Mock Service Worker (MSW).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-addon",
|
|
@@ -60,8 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@embroider/addon-shim": "^1.8.7",
|
|
63
|
-
"decorator-transforms": "^1.0.1"
|
|
64
|
-
"lodash.merge": "^4.6.2"
|
|
63
|
+
"decorator-transforms": "^1.0.1"
|
|
65
64
|
},
|
|
66
65
|
"devDependencies": {
|
|
67
66
|
"@babel/core": "^7.23.6",
|
|
@@ -72,10 +71,8 @@
|
|
|
72
71
|
"@glint/environment-ember-loose": "^1.2.1",
|
|
73
72
|
"@glint/environment-ember-template-imports": "^1.2.1",
|
|
74
73
|
"@glint/template": "^1.2.1",
|
|
75
|
-
"@release-it-plugins/lerna-changelog": "^6.0.0",
|
|
76
74
|
"@rollup/plugin-babel": "^6.0.4",
|
|
77
75
|
"@tsconfig/ember": "^3.0.2",
|
|
78
|
-
"@types/lodash.merge": "^4.6.9",
|
|
79
76
|
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
80
77
|
"@typescript-eslint/parser": "^6.14.0",
|
|
81
78
|
"babel-plugin-ember-template-compilation": "^2.2.1",
|
|
@@ -88,10 +85,9 @@
|
|
|
88
85
|
"eslint-plugin-n": "^16.4.0",
|
|
89
86
|
"eslint-plugin-prettier": "^5.0.1",
|
|
90
87
|
"graphql": "^16.8.1",
|
|
91
|
-
"msw": "^2.
|
|
88
|
+
"msw": "^2.7.0",
|
|
92
89
|
"prettier": "^3.1.1",
|
|
93
90
|
"prettier-plugin-ember-template-tag": "^1.1.0",
|
|
94
|
-
"release-it": "^17.0.3",
|
|
95
91
|
"rollup": "^4.9.1",
|
|
96
92
|
"rollup-plugin-copy": "^3.5.0",
|
|
97
93
|
"typescript": "^5.3.3"
|
|
@@ -113,24 +109,6 @@
|
|
|
113
109
|
"main": "addon-main.cjs",
|
|
114
110
|
"app-js": {}
|
|
115
111
|
},
|
|
116
|
-
"release-it": {
|
|
117
|
-
"git": {
|
|
118
|
-
"commitMessage": "Release v${version}",
|
|
119
|
-
"tagName": "v${version}"
|
|
120
|
-
},
|
|
121
|
-
"github": {
|
|
122
|
-
"release": true
|
|
123
|
-
},
|
|
124
|
-
"hooks": {
|
|
125
|
-
"before:git:release": "git add ../"
|
|
126
|
-
},
|
|
127
|
-
"plugins": {
|
|
128
|
-
"@release-it-plugins/lerna-changelog": {
|
|
129
|
-
"infile": "../CHANGELOG.md",
|
|
130
|
-
"launchEditor": false
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
112
|
"volta": {
|
|
135
113
|
"extends": "../package.json"
|
|
136
114
|
}
|