@dumbql/testing 0.0.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.
@@ -0,0 +1,64 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject, Observable, of } from 'rxjs';
4
+ import { print } from '@dumbql/core';
5
+
6
+ class MockGraphqlService {
7
+ responses = new Map();
8
+ defaultResponse$ = new BehaviorSubject({
9
+ status: 'error',
10
+ error: 'No mock response configured',
11
+ });
12
+ when(request, result) {
13
+ const key = `${request.query}|${JSON.stringify(request.variables ?? {})}`;
14
+ const existing = this.responses.get(key) ?? [];
15
+ existing.push({ request, result });
16
+ this.responses.set(key, existing);
17
+ }
18
+ query(document, variables) {
19
+ const query = typeof document === 'string' ? document : print(document);
20
+ const key = `${query}|${JSON.stringify(variables ?? {})}`;
21
+ const entries = this.responses.get(key);
22
+ if (entries && entries.length > 0) {
23
+ const entry = entries.shift();
24
+ const result = entry.result;
25
+ if (entry.delay) {
26
+ return new Observable((sub) => {
27
+ setTimeout(() => {
28
+ sub.next(result);
29
+ sub.complete();
30
+ }, entry.delay);
31
+ });
32
+ }
33
+ return of(result);
34
+ }
35
+ return of(this.defaultResponse$.value);
36
+ }
37
+ mutate(document, variables) {
38
+ return this.query(document, variables);
39
+ }
40
+ refetch(document, variables) {
41
+ return this.query(document, variables);
42
+ }
43
+ poll(document, _intervalMs, variables) {
44
+ return this.query(document, variables);
45
+ }
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MockGraphqlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
47
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MockGraphqlService });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: MockGraphqlService, decorators: [{
50
+ type: Injectable
51
+ }] });
52
+
53
+ function provideDumbqlTesting() {
54
+ return [
55
+ MockGraphqlService,
56
+ ];
57
+ }
58
+
59
+ /**
60
+ * Generated bundle index. Do not edit.
61
+ */
62
+
63
+ export { MockGraphqlService, provideDumbqlTesting };
64
+ //# sourceMappingURL=dumbql-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dumbql-testing.mjs","sources":["../../../../projects/dumbql/testing/src/lib/mock-graphql.service.ts","../../../../projects/dumbql/testing/src/lib/provide-dumbql-testing.ts","../../../../projects/dumbql/testing/src/dumbql-testing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { type GraphQLResult, type DocumentNode, print } from '@dumbql/core';\n\nexport interface MockedRequest {\n query: string;\n variables?: Record<string, unknown>;\n}\n\nexport interface MockedResponse<T = unknown> {\n request: MockedRequest;\n result: GraphQLResult<T>;\n delay?: number;\n}\n\n@Injectable()\nexport class MockGraphqlService {\n private responses = new Map<string, MockedResponse[]>();\n private defaultResponse$ = new BehaviorSubject<GraphQLResult<unknown>>({\n \tstatus: 'error',\n \terror: 'No mock response configured',\n });\n\n when<T>(request: MockedRequest, result: GraphQLResult<T>): void {\n \tconst key = `${request.query}|${JSON.stringify(request.variables ?? {})}`;\n \tconst existing = this.responses.get(key) ?? [];\n \texisting.push({ request, result } as MockedResponse);\n \tthis.responses.set(key, existing);\n }\n\n query<T, TVars>(\n \tdocument: DocumentNode | string,\n \tvariables?: TVars,\n ): Observable<GraphQLResult<T>> {\n \tconst query = typeof document === 'string' ? document : print(document);\n \tconst key = `${query}|${JSON.stringify(variables ?? {})}`;\n \tconst entries = this.responses.get(key);\n \tif (entries && entries.length > 0) {\n \t\tconst entry = entries.shift()!;\n \t\tconst result = entry.result as GraphQLResult<T>;\n \t\tif (entry.delay) {\n \t\t\treturn new Observable((sub) => {\n \t\t\t\tsetTimeout(() => {\n \t\t\t\t\tsub.next(result);\n \t\t\t\t\tsub.complete();\n \t\t\t\t}, entry.delay);\n \t\t\t});\n \t\t}\n \t\treturn of(result);\n \t}\n \treturn of(this.defaultResponse$.value as GraphQLResult<T>);\n }\n\n mutate<T, TVars>(document: DocumentNode | string, variables?: TVars): Observable<GraphQLResult<T>> {\n \treturn this.query<T, TVars>(document, variables);\n }\n\n refetch<T, TVars>(document: DocumentNode | string, variables?: TVars): Observable<GraphQLResult<T>> {\n \treturn this.query<T, TVars>(document, variables);\n }\n\n poll<T, TVars>(\n \tdocument: DocumentNode | string,\n \t_intervalMs: number,\n \tvariables?: TVars,\n ): Observable<GraphQLResult<T>> {\n \treturn this.query<T, TVars>(document, variables);\n }\n}\n","import { type Provider } from '@angular/core';\nimport { MockGraphqlService } from './mock-graphql.service';\n\nexport function provideDumbqlTesting(): Provider[] {\n\treturn [\n\t\tMockGraphqlService,\n\t];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAgBa,kBAAkB,CAAA;AACrB,IAAA,SAAS,GAAG,IAAI,GAAG,EAA4B;IAC/C,gBAAgB,GAAG,IAAI,eAAe,CAAyB;AACtE,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,KAAK,EAAE,6BAA6B;AACpC,KAAA,CAAC;IAEF,IAAI,CAAI,OAAsB,EAAE,MAAwB,EAAA;AACvD,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;AACzE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;QAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAoB,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;IAClC;IAEA,KAAK,CACJ,QAA+B,EAC/B,SAAiB,EAAA;AAEjB,QAAA,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACvE,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAG;AAC9B,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;AAC/C,YAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AAChB,gBAAA,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,KAAI;oBAC7B,UAAU,CAAC,MAAK;AACf,wBAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;wBAChB,GAAG,CAAC,QAAQ,EAAE;AACf,oBAAA,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;AAChB,gBAAA,CAAC,CAAC;YACH;AACA,YAAA,OAAO,EAAE,CAAC,MAAM,CAAC;QAClB;QACA,OAAO,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAyB,CAAC;IAC3D;IAEA,MAAM,CAAW,QAA+B,EAAE,SAAiB,EAAA;QAClE,OAAO,IAAI,CAAC,KAAK,CAAW,QAAQ,EAAE,SAAS,CAAC;IACjD;IAEA,OAAO,CAAW,QAA+B,EAAE,SAAiB,EAAA;QACnE,OAAO,IAAI,CAAC,KAAK,CAAW,QAAQ,EAAE,SAAS,CAAC;IACjD;AAEA,IAAA,IAAI,CACH,QAA+B,EAC/B,WAAmB,EACnB,SAAiB,EAAA;QAEjB,OAAO,IAAI,CAAC,KAAK,CAAW,QAAQ,EAAE,SAAS,CAAC;IACjD;uGAnDW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAlB,kBAAkB,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;SCZe,oBAAoB,GAAA;IACnC,OAAO;QACN,kBAAkB;KAClB;AACF;;ACPA;;AAEG;;;;"}
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@dumbql/testing",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/core": "^22.0.0",
6
+ "@dumbql/core": "^0.0.1",
7
+ "rxjs": "~7.8.0"
8
+ },
9
+ "sideEffects": false,
10
+ "module": "fesm2022/dumbql-testing.mjs",
11
+ "typings": "types/dumbql-testing.d.ts",
12
+ "exports": {
13
+ "./package.json": {
14
+ "default": "./package.json"
15
+ },
16
+ ".": {
17
+ "types": "./types/dumbql-testing.d.ts",
18
+ "default": "./fesm2022/dumbql-testing.mjs"
19
+ }
20
+ },
21
+ "type": "module",
22
+ "dependencies": {
23
+ "tslib": "^2.3.0"
24
+ }
25
+ }
@@ -0,0 +1,30 @@
1
+ import { Observable } from 'rxjs';
2
+ import { GraphQLResult, DocumentNode } from '@dumbql/core';
3
+ import * as i0 from '@angular/core';
4
+ import { Provider } from '@angular/core';
5
+
6
+ interface MockedRequest {
7
+ query: string;
8
+ variables?: Record<string, unknown>;
9
+ }
10
+ interface MockedResponse<T = unknown> {
11
+ request: MockedRequest;
12
+ result: GraphQLResult<T>;
13
+ delay?: number;
14
+ }
15
+ declare class MockGraphqlService {
16
+ private responses;
17
+ private defaultResponse$;
18
+ when<T>(request: MockedRequest, result: GraphQLResult<T>): void;
19
+ query<T, TVars>(document: DocumentNode | string, variables?: TVars): Observable<GraphQLResult<T>>;
20
+ mutate<T, TVars>(document: DocumentNode | string, variables?: TVars): Observable<GraphQLResult<T>>;
21
+ refetch<T, TVars>(document: DocumentNode | string, variables?: TVars): Observable<GraphQLResult<T>>;
22
+ poll<T, TVars>(document: DocumentNode | string, _intervalMs: number, variables?: TVars): Observable<GraphQLResult<T>>;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<MockGraphqlService, never>;
24
+ static ɵprov: i0.ɵɵInjectableDeclaration<MockGraphqlService>;
25
+ }
26
+
27
+ declare function provideDumbqlTesting(): Provider[];
28
+
29
+ export { MockGraphqlService, provideDumbqlTesting };
30
+ export type { MockedRequest, MockedResponse };