@projectcaluma/ember-testing 9.1.0 → 10.2.0-beta.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +994 -0
  2. package/addon/mirage-graphql/filters/answer.js +13 -0
  3. package/addon/mirage-graphql/filters/base.js +47 -20
  4. package/addon/mirage-graphql/filters/question.js +1 -3
  5. package/addon/mirage-graphql/filters/work-item.js +22 -2
  6. package/addon/mirage-graphql/handler.js +25 -7
  7. package/addon/mirage-graphql/index.js +24 -3
  8. package/addon/mirage-graphql/mocks/answer.js +8 -33
  9. package/addon/mirage-graphql/mocks/base.js +105 -42
  10. package/addon/mirage-graphql/mocks/form.js +25 -100
  11. package/addon/mirage-graphql/mocks/question.js +17 -119
  12. package/addon/mirage-graphql/mocks/work-item.js +105 -0
  13. package/addon/mirage-graphql/schema.graphql +0 -16
  14. package/addon/scenarios/distribution.js +315 -0
  15. package/addon-mirage-support/factories/answer.js +4 -2
  16. package/addon-mirage-support/factories/case.js +3 -2
  17. package/addon-mirage-support/factories/document.js +5 -2
  18. package/addon-mirage-support/factories/file.js +3 -2
  19. package/addon-mirage-support/factories/form.js +5 -2
  20. package/addon-mirage-support/factories/format-validator.js +5 -2
  21. package/addon-mirage-support/factories/option.js +4 -1
  22. package/addon-mirage-support/factories/question.js +6 -2
  23. package/addon-mirage-support/factories/task.js +6 -5
  24. package/addon-mirage-support/factories/work-item.js +3 -2
  25. package/addon-mirage-support/factories/workflow.js +9 -0
  26. package/addon-mirage-support/models/answer.js +3 -2
  27. package/addon-mirage-support/models/case.js +2 -1
  28. package/addon-mirage-support/models/document.js +1 -1
  29. package/addon-mirage-support/models/file.js +1 -1
  30. package/addon-mirage-support/models/form.js +2 -2
  31. package/addon-mirage-support/models/format-validator.js +1 -1
  32. package/addon-mirage-support/models/option.js +1 -1
  33. package/addon-mirage-support/models/question.js +5 -3
  34. package/addon-mirage-support/models/task.js +1 -1
  35. package/addon-mirage-support/models/work-item.js +3 -1
  36. package/addon-mirage-support/models/workflow.js +1 -1
  37. package/index.js +1 -1
  38. package/package.json +15 -13
  39. package/addon/mirage-graphql/mocks/case.js +0 -9
  40. package/addon/mirage-graphql/mocks/task.js +0 -55
  41. package/addon/mirage-graphql/resolvers/index.js +0 -16
  42. package/addon/mirage-graphql/serializers/answer.js +0 -14
  43. package/addon/mirage-graphql/serializers/base.js +0 -13
  44. package/addon/mirage-graphql/serializers/case.js +0 -11
  45. package/addon/mirage-graphql/serializers/document.js +0 -11
  46. package/addon/mirage-graphql/serializers/file.js +0 -12
  47. package/addon/mirage-graphql/serializers/form.js +0 -11
  48. package/addon/mirage-graphql/serializers/question.js +0 -14
  49. package/addon/mirage-graphql/serializers/task.js +0 -16
  50. package/addon/mirage-graphql/serializers/work-item.js +0 -11
@@ -0,0 +1,315 @@
1
+ import faker from "@faker-js/faker";
2
+ import moment from "moment";
3
+
4
+ export function createBlueprint(server) {
5
+ const inquiryForm = server.create("form", { slug: "inquiry" });
6
+ const inquiryAnswerForm = server.create("form", { slug: "inquiry-answer" });
7
+
8
+ server.create("question", {
9
+ slug: "inquiry-remark",
10
+ label: "Remark",
11
+ isRequired: "true",
12
+ maxLength: 9999,
13
+ minLength: 0,
14
+ formIds: [inquiryForm.id],
15
+ type: "TEXTAREA",
16
+ });
17
+ server.create("question", {
18
+ slug: "inquiry-deadline",
19
+ label: "Deadline",
20
+ isRequired: "true",
21
+ formIds: [inquiryForm.id],
22
+ type: "DATE",
23
+ });
24
+
25
+ server.create("question", {
26
+ slug: "inquiry-answer-status",
27
+ type: "CHOICE",
28
+ formIds: [inquiryAnswerForm.id],
29
+ isRequired: "true",
30
+ label: "Status",
31
+ options: [
32
+ server.create("option", {
33
+ slug: "inquiry-answer-status-positive",
34
+ label: "Positive",
35
+ }),
36
+ server.create("option", {
37
+ slug: "inquiry-answer-status-negative",
38
+ label: "Negative",
39
+ }),
40
+ server.create("option", {
41
+ slug: "inquiry-answer-status-needs-interaction",
42
+ label: "Needs interaction",
43
+ }),
44
+ ],
45
+ });
46
+ server.create("question", {
47
+ slug: "inquiry-answer-reason",
48
+ isRequired: "true",
49
+ maxLength: 9999,
50
+ minLength: 0,
51
+ label: "Reason",
52
+ type: "TEXTAREA",
53
+ formIds: [inquiryAnswerForm.id],
54
+ });
55
+
56
+ server.create("workflow", { slug: "distribution" });
57
+ server.create("workflow", { slug: "inquiry" });
58
+
59
+ server.create("task", { slug: "create-inquiry" });
60
+ server.create("task", { slug: "complete-distribution" });
61
+ server.create("task", { slug: "inquiry" });
62
+ server.create("task", {
63
+ slug: "compose-inquiry-answer",
64
+ type: "COMPLETE_WORKFLOW_FORM",
65
+ });
66
+ server.create("task", { slug: "confirm-inquiry-answer" });
67
+ server.create("task", { slug: "revise-inquiry-answer" });
68
+ server.create("task", {
69
+ slug: "adjust-inquiry-answer",
70
+ type: "COMPLETE_WORKFLOW_FORM",
71
+ });
72
+ }
73
+
74
+ export function createInquiry(
75
+ server,
76
+ distributionCase,
77
+ { from, to, remark, deadline },
78
+ workItemAttrs = {}
79
+ ) {
80
+ const document = server.create("document", { formId: "inquiry" });
81
+
82
+ server.create("answer", {
83
+ document,
84
+ questionId: "inquiry-remark",
85
+ value: remark ?? faker.lorem.paragraph(),
86
+ });
87
+
88
+ server.create("answer", {
89
+ document,
90
+ questionId: "inquiry-deadline",
91
+ value: deadline ?? faker.date.future(),
92
+ });
93
+
94
+ return server.create("work-item", {
95
+ taskId: "inquiry",
96
+ document,
97
+ status: "SUSPENDED",
98
+ case: distributionCase,
99
+ addressedGroups: [to.id],
100
+ controllingGroups: [from.id],
101
+ ...workItemAttrs,
102
+ });
103
+ }
104
+
105
+ export function sendInquiry(server, { inquiry }) {
106
+ const childCase = server.create("case", {
107
+ status: "RUNNING",
108
+ workflowId: "inquiry",
109
+ document: server.create("document", { formId: "inquiry-answer" }),
110
+ });
111
+
112
+ server.create("work-item", {
113
+ taskId: "compose-inquiry-answer",
114
+ status: "READY",
115
+ case: childCase,
116
+ addressedGroups: inquiry.addressedGroups,
117
+ });
118
+
119
+ inquiry.update({ status: "READY", childCase });
120
+
121
+ return inquiry;
122
+ }
123
+
124
+ export function answerInquiry(server, { inquiry, status, reason }) {
125
+ if (inquiry.status !== "READY") {
126
+ inquiry = sendInquiry(server, { inquiry });
127
+ }
128
+
129
+ server.create("answer", {
130
+ document: inquiry.childCase.document,
131
+ questionId: "inquiry-answer-status",
132
+ value: status,
133
+ });
134
+
135
+ server.create("answer", {
136
+ document: inquiry.childCase.document,
137
+ questionId: "inquiry-answer-reason",
138
+ value: reason ?? faker.lorem.paragraph(),
139
+ });
140
+
141
+ inquiry.childCase.workItems
142
+ .filter((workItem) => workItem.taskId === "compose-inquiry-answer")
143
+ .update({ status: "COMPLETED" });
144
+ server.create("work-item", {
145
+ taskId: "confirm-inquiry-answer",
146
+ status: "READY",
147
+ case: inquiry.childCase,
148
+ addressedGroups: inquiry.addressedGroups,
149
+ });
150
+ server.create("work-item", {
151
+ taskId: "revise-inquiry-answer",
152
+ status: "READY",
153
+ case: inquiry.childCase,
154
+ addressedGroups: inquiry.addressedGroups,
155
+ });
156
+
157
+ return inquiry;
158
+ }
159
+
160
+ export function confirmInquiry({ inquiry }) {
161
+ inquiry.update({ status: "COMPLETED" });
162
+ inquiry.childCase.update({
163
+ status: "COMPLETED",
164
+ closedAt: faker.date.recent(),
165
+ });
166
+ inquiry.childCase.workItems
167
+ .filter((workItem) => workItem.taskId === "confirm-inquiry-answer")
168
+ .update({ status: "COMPLETED" });
169
+ inquiry.childCase.workItems
170
+ .filter((workItem) => workItem.taskId === "revise-inquiry-answer")
171
+ .update({ status: "CANCELED" });
172
+
173
+ return inquiry;
174
+ }
175
+
176
+ export function reviseInquiry(server, { inquiry }) {
177
+ server.create("work-item", {
178
+ taskId: "adjust-inquiry-answer",
179
+ status: "READY",
180
+ case: inquiry.childCase,
181
+ addressedGroups: inquiry.addressedGroups,
182
+ });
183
+ inquiry.childCase.workItems
184
+ .filter((workItem) => workItem.taskId === "confirm-inquiry-answer")
185
+ .update({ status: "CANCELED" });
186
+ inquiry.childCase.workItems
187
+ .filter((workItem) => workItem.taskId === "revise-inquiry-answer")
188
+ .update({ status: "COMPLETED" });
189
+
190
+ return inquiry;
191
+ }
192
+
193
+ export function createCase(server, { group }) {
194
+ const distributionCase = server.create("case", {
195
+ status: "RUNNING",
196
+ workflowId: "distribution",
197
+ });
198
+
199
+ server.create("work-item", {
200
+ case: distributionCase,
201
+ taskId: "create-inquiry",
202
+ status: "READY",
203
+ addressedGroups: [group.id],
204
+ });
205
+
206
+ server.create("work-item", {
207
+ case: distributionCase,
208
+ taskId: "complete-distribution",
209
+ status: "READY",
210
+ addressedGroups: [group.id],
211
+ });
212
+
213
+ return distributionCase;
214
+ }
215
+
216
+ export default function (server, groups) {
217
+ createBlueprint(server);
218
+
219
+ const g = groups[0];
220
+ const g1 = groups[1];
221
+ const g2 = groups[2];
222
+ const g3 = groups[3];
223
+ const g4 = groups[4];
224
+
225
+ const create = (...args) => createInquiry(server, distributionCase, ...args);
226
+ const send = (...args) => sendInquiry(server, ...args);
227
+ const answer = (...args) => answerInquiry(server, ...args);
228
+ const confirm = (...args) => confirmInquiry(...args);
229
+ const revise = (...args) => reviseInquiry(server, ...args);
230
+
231
+ const distributionCase = createCase(server, { group: g1 });
232
+
233
+ server.create("work-item", {
234
+ taskId: "create-inquiry",
235
+ status: "READY",
236
+ addressedGroups: [g.id],
237
+ });
238
+
239
+ // controlling
240
+ create({ from: g, to: g1 });
241
+ send({
242
+ inquiry: create({
243
+ from: g,
244
+ to: g2,
245
+ deadline: faker.date.past(),
246
+ }),
247
+ });
248
+ confirm({
249
+ inquiry: answer({
250
+ inquiry: create({
251
+ from: g,
252
+ to: g3,
253
+ deadline: faker.date.past(),
254
+ }),
255
+ status: "inquiry-answer-status-needs-interaction",
256
+ }),
257
+ });
258
+
259
+ // "override" third controlling inquiry
260
+ confirm({
261
+ inquiry: answer({
262
+ inquiry: create({ from: g, to: g3 }, { createdAt: faker.date.recent() }),
263
+ status: "inquiry-answer-status-positive",
264
+ }),
265
+ });
266
+
267
+ // addressed
268
+ confirm({
269
+ inquiry: answer({
270
+ inquiry: create({ from: g2, to: g }),
271
+ status: "inquiry-answer-status-needs-interaction",
272
+ }),
273
+ });
274
+ // "override" first addressed inquiry
275
+ send({
276
+ inquiry: create(
277
+ {
278
+ from: g2,
279
+ to: g,
280
+ deadline: moment.utc().add(2, "days").toDate(),
281
+ },
282
+ { createdAt: faker.date.recent() }
283
+ ),
284
+ });
285
+ confirm({
286
+ inquiry: answer({
287
+ inquiry: create({ from: g4, to: g }),
288
+ status: "inquiry-answer-status-negative",
289
+ }),
290
+ });
291
+ answer({
292
+ inquiry: create({ from: g3, to: g }),
293
+ status: "inquiry-answer-status-positive",
294
+ });
295
+ revise({
296
+ inquiry: answer({
297
+ inquiry: create({ from: g1, to: g }),
298
+ status: "inquiry-answer-status-needs-interaction",
299
+ }),
300
+ });
301
+
302
+ // more
303
+ confirm({
304
+ inquiry: answer({
305
+ inquiry: create({ from: g2, to: g3 }),
306
+ status: "inquiry-answer-status-needs-interaction",
307
+ }),
308
+ });
309
+ confirm({
310
+ inquiry: answer({
311
+ inquiry: create({ from: g3, to: g4 }),
312
+ status: "inquiry-answer-status-positive",
313
+ }),
314
+ });
315
+ }
@@ -1,8 +1,10 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
3
3
  import moment from "moment";
4
4
 
5
5
  export default Factory.extend({
6
+ id: () => faker.datatype.uuid(),
7
+
6
8
  afterCreate(answer, server) {
7
9
  if (!answer.question) {
8
10
  return;
@@ -1,9 +1,10 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
3
3
 
4
4
  const STATUS = ["RUNNING", "COMPLETED", "CANCELED", "SUSPENDED"];
5
5
 
6
6
  export default Factory.extend({
7
+ id: () => faker.datatype.uuid(),
7
8
  createdByUser: () => faker.datatype.uuid(),
8
9
  createdAt: () => faker.date.past(),
9
10
  modifiedAt: () => faker.date.past(),
@@ -1,3 +1,6 @@
1
- import { Factory } from "ember-cli-mirage";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
2
3
 
3
- export default Factory.extend({});
4
+ export default Factory.extend({
5
+ id: () => faker.datatype.uuid(),
6
+ });
@@ -1,7 +1,8 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
3
3
 
4
4
  export default Factory.extend({
5
+ id: () => faker.datatype.uuid(),
5
6
  createdAt: () => faker.date.past(),
6
7
  modifiedAt: () => faker.date.past(),
7
8
  createdByUser: () => faker.datatype.uuid(),
@@ -1,7 +1,10 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
3
3
 
4
4
  export default Factory.extend({
5
+ id() {
6
+ return this.slug;
7
+ },
5
8
  name: (i) => `Form #${i + 1}`,
6
9
  slug: (i) => `form-${i + 1}`,
7
10
  description: () => faker.lorem.paragraph(),
@@ -1,7 +1,10 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
3
3
 
4
4
  export default Factory.extend({
5
+ id() {
6
+ return this.slug;
7
+ },
5
8
  name: (i) => `Validator #${i + 1}`,
6
9
  slug: (i) => `validator-${i + 1}`,
7
10
  errorMsg: () => faker.lorem.paragraph(),
@@ -1,6 +1,9 @@
1
- import { Factory } from "ember-cli-mirage";
1
+ import { Factory } from "miragejs";
2
2
 
3
3
  export default Factory.extend({
4
+ id() {
5
+ return this.slug;
6
+ },
4
7
  slug: (i) => `option-${i + 1}`,
5
8
  label: (i) => `Option ${i + 1}`,
6
9
  meta: () => ({}),
@@ -1,7 +1,11 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
3
3
 
4
4
  export default Factory.extend({
5
+ id() {
6
+ return this.slug;
7
+ },
8
+
5
9
  type: "TEXT",
6
10
 
7
11
  slug: (i) => `question-${i + 1}`,
@@ -1,12 +1,13 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
3
-
4
- const TYPES = ["SIMPLE", "COMPLETE_WORKFLOW_FORM", "COMPLETE_TASK_FORM"];
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
5
3
 
6
4
  export default Factory.extend({
5
+ id() {
6
+ return this.slug;
7
+ },
7
8
  name: (i) => `Task #${i + 1}`,
8
9
  slug: (i) => `task-${i + 1}`,
9
- type: () => faker.random.arrayElement(TYPES),
10
+ type: "SIMPLE",
10
11
  createdByUser: () => faker.datatype.uuid(),
11
12
  createdAt: () => faker.date.past(),
12
13
  });
@@ -1,9 +1,10 @@
1
- import { Factory } from "ember-cli-mirage";
2
- import faker from "faker";
1
+ import faker from "@faker-js/faker";
2
+ import { Factory } from "miragejs";
3
3
 
4
4
  const STATUS = ["READY", "CANCELED", "COMPLETED", "SKIPPED", "SUSPENDED"];
5
5
 
6
6
  export default Factory.extend({
7
+ id: () => faker.datatype.uuid(),
7
8
  name: () => faker.lorem.words(5),
8
9
  createdByUser: () => faker.datatype.uuid(),
9
10
  createdAt: () => faker.date.past(),
@@ -0,0 +1,9 @@
1
+ import { Factory } from "miragejs";
2
+
3
+ export default Factory.extend({
4
+ id() {
5
+ return this.slug;
6
+ },
7
+ name: (i) => `Workflow #${i + 1}`,
8
+ slug: (i) => `workflow-${i + 1}`,
9
+ });
@@ -1,6 +1,7 @@
1
- import { Model, belongsTo } from "ember-cli-mirage";
1
+ import { Model, belongsTo, hasMany } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
- document: belongsTo(),
4
+ document: belongsTo("document"),
5
5
  question: belongsTo(),
6
+ documents: hasMany("document", { inverse: null }),
6
7
  });
@@ -1,7 +1,8 @@
1
- import { Model, belongsTo, hasMany } from "ember-cli-mirage";
1
+ import { Model, belongsTo, hasMany } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
4
  document: belongsTo(),
5
5
  workflow: belongsTo(),
6
+ parentWorkItem: belongsTo("workItem", { inverse: "childCase" }),
6
7
  workItems: hasMany(),
7
8
  });
@@ -1,4 +1,4 @@
1
- import { Model, belongsTo, hasMany } from "ember-cli-mirage";
1
+ import { Model, belongsTo, hasMany } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
4
  form: belongsTo(),
@@ -1,3 +1,3 @@
1
- import { Model } from "ember-cli-mirage";
1
+ import { Model } from "miragejs";
2
2
 
3
3
  export default Model.extend({});
@@ -1,5 +1,5 @@
1
- import { Model, hasMany } from "ember-cli-mirage";
1
+ import { Model, hasMany } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
- questions: hasMany(),
4
+ questions: hasMany({ inverse: "forms" }),
5
5
  });
@@ -1,3 +1,3 @@
1
- import { Model } from "ember-cli-mirage";
1
+ import { Model } from "miragejs";
2
2
 
3
3
  export default Model.extend({});
@@ -1,4 +1,4 @@
1
- import { Model, hasMany } from "ember-cli-mirage";
1
+ import { Model, hasMany } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
4
  questions: hasMany(),
@@ -1,7 +1,9 @@
1
- import { Model, hasMany, belongsTo } from "ember-cli-mirage";
1
+ import { Model, hasMany, belongsTo } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
- forms: hasMany(),
4
+ forms: hasMany({ inverse: "questions" }),
5
5
  options: hasMany(),
6
- defaultAnswer: belongsTo("answer"),
6
+ subForm: belongsTo("form", { inverse: null }),
7
+ rowForm: belongsTo("form", { inverse: null }),
8
+ defaultAnswer: belongsTo("answer", { inverse: null }),
7
9
  });
@@ -1,4 +1,4 @@
1
- import { Model, belongsTo, hasMany } from "ember-cli-mirage";
1
+ import { Model, belongsTo, hasMany } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
4
  workflow: belongsTo(),
@@ -1,6 +1,8 @@
1
- import { Model, belongsTo } from "ember-cli-mirage";
1
+ import { Model, belongsTo } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
4
  case: belongsTo(),
5
+ childCase: belongsTo("case", { inverse: "parentWorkItem" }),
5
6
  task: belongsTo(),
7
+ document: belongsTo(),
6
8
  });
@@ -1,4 +1,4 @@
1
- import { Model, belongsTo, hasMany } from "ember-cli-mirage";
1
+ import { Model, belongsTo, hasMany } from "miragejs";
2
2
 
3
3
  export default Model.extend({
4
4
  workflow: belongsTo(),
package/index.js CHANGED
@@ -15,6 +15,6 @@ module.exports = {
15
15
  destDir: "mirage",
16
16
  });
17
17
 
18
- return mergeTrees([appTree, mirageTree]);
18
+ return mergeTrees([appTree, mirageTree].filter(Boolean));
19
19
  },
20
20
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcaluma/ember-testing",
3
- "version": "9.1.0",
3
+ "version": "10.2.0-beta.2",
4
4
  "description": "Ember addon for testing with Caluma addons.",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -14,26 +14,28 @@
14
14
  "test:ember-compatibility": "ember try:each"
15
15
  },
16
16
  "dependencies": {
17
+ "@faker-js/faker": "^6.0.0-alpha.3",
17
18
  "broccoli-funnel": "^3.0.8",
18
19
  "broccoli-merge-trees": "^4.2.0",
19
20
  "ember-apollo-client": "^3.2.0",
20
- "ember-auto-import": "^2.2.3",
21
- "ember-cli-babel": "^7.26.6",
22
- "ember-cli-htmlbars": "^6.0.0",
23
- "ember-cli-mirage": "^2.2.0",
24
- "ember-fetch": "^8.0.4",
25
- "faker": "^5.5.3",
26
- "graphql": "^15.6.1",
21
+ "ember-auto-import": "^2.3.0",
22
+ "ember-cli-babel": "^7.26.11",
23
+ "ember-cli-htmlbars": "^6.0.1",
24
+ "ember-cli-mirage": "^2.3.1",
25
+ "ember-fetch": "^8.1.1",
26
+ "ember-inflector": "^4.0.2",
27
+ "graphql": "^15.8.0",
27
28
  "graphql-iso-date": "^3.6.1",
28
29
  "graphql-tools": "^4.0.8",
30
+ "miragejs": "^0.1.43",
29
31
  "moment": "^2.29.1"
30
32
  },
31
33
  "devDependencies": {
32
34
  "@ember/optional-features": "2.0.0",
33
35
  "@ember/test-helpers": "2.6.0",
34
- "@embroider/test-setup": "0.47.2",
36
+ "@embroider/test-setup": "0.50.2",
35
37
  "broccoli-asset-rev": "3.0.0",
36
- "ember-cli": "3.28.3",
38
+ "ember-cli": "3.28.5",
37
39
  "ember-cli-code-coverage": "1.0.3",
38
40
  "ember-cli-dependency-checker": "3.2.0",
39
41
  "ember-cli-inject-live-reload": "2.1.0",
@@ -45,7 +47,7 @@
45
47
  "ember-maybe-import-regenerator": "1.0.0",
46
48
  "ember-qunit": "5.1.5",
47
49
  "ember-resolver": "8.0.3",
48
- "ember-source": "3.28.6",
50
+ "ember-source": "3.28.8",
49
51
  "ember-source-channel-url": "3.0.0",
50
52
  "ember-try": "2.0.0",
51
53
  "get-graphql-schema": "2.1.2",
@@ -53,10 +55,10 @@
53
55
  "loader.js": "4.7.0",
54
56
  "qunit": "2.17.2",
55
57
  "qunit-dom": "2.0.0",
56
- "webpack": "5.64.0"
58
+ "webpack": "5.66.0"
57
59
  },
58
60
  "engines": {
59
- "node": "10.* || >= 12"
61
+ "node": "12.* || 14.* || >= 16"
60
62
  },
61
63
  "ember": {
62
64
  "edition": "octane"
@@ -1,9 +0,0 @@
1
- import { register } from "@projectcaluma/ember-testing/mirage-graphql";
2
- import BaseMock from "@projectcaluma/ember-testing/mirage-graphql/mocks/base";
3
-
4
- export default class extends BaseMock {
5
- @register("Case")
6
- handleCase({ __typename }) {
7
- return { __typename };
8
- }
9
- }