@projectcaluma/ember-testing 9.0.0 → 10.2.0-beta.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 (44) hide show
  1. package/addon/mirage-graphql/filters/answer.js +13 -0
  2. package/addon/mirage-graphql/filters/base.js +47 -20
  3. package/addon/mirage-graphql/filters/question.js +1 -3
  4. package/addon/mirage-graphql/filters/work-item.js +27 -0
  5. package/addon/mirage-graphql/handler.js +25 -7
  6. package/addon/mirage-graphql/index.js +24 -3
  7. package/addon/mirage-graphql/mocks/answer.js +8 -33
  8. package/addon/mirage-graphql/mocks/base.js +119 -47
  9. package/addon/mirage-graphql/mocks/form.js +25 -100
  10. package/addon/mirage-graphql/mocks/question.js +17 -119
  11. package/addon/mirage-graphql/mocks/work-item.js +72 -0
  12. package/addon/mirage-graphql/schema.graphql +121 -8
  13. package/addon/scenarios/distribution.js +287 -0
  14. package/addon-mirage-support/factories/answer.js +2 -0
  15. package/addon-mirage-support/factories/case.js +6 -5
  16. package/addon-mirage-support/factories/document.js +4 -1
  17. package/addon-mirage-support/factories/file.js +6 -5
  18. package/addon-mirage-support/factories/form.js +3 -0
  19. package/addon-mirage-support/factories/format-validator.js +3 -0
  20. package/addon-mirage-support/factories/option.js +3 -0
  21. package/addon-mirage-support/factories/question.js +19 -0
  22. package/addon-mirage-support/factories/task.js +6 -5
  23. package/addon-mirage-support/factories/work-item.js +7 -5
  24. package/addon-mirage-support/factories/workflow.js +9 -0
  25. package/addon-mirage-support/models/answer.js +3 -2
  26. package/addon-mirage-support/models/case.js +1 -0
  27. package/addon-mirage-support/models/document.js +1 -0
  28. package/addon-mirage-support/models/form.js +1 -1
  29. package/addon-mirage-support/models/question.js +4 -2
  30. package/addon-mirage-support/models/work-item.js +2 -0
  31. package/index.js +1 -1
  32. package/package.json +19 -15
  33. package/addon/mirage-graphql/mocks/case.js +0 -9
  34. package/addon/mirage-graphql/mocks/task.js +0 -55
  35. package/addon/mirage-graphql/resolvers/index.js +0 -16
  36. package/addon/mirage-graphql/serializers/answer.js +0 -14
  37. package/addon/mirage-graphql/serializers/base.js +0 -13
  38. package/addon/mirage-graphql/serializers/case.js +0 -11
  39. package/addon/mirage-graphql/serializers/document.js +0 -11
  40. package/addon/mirage-graphql/serializers/file.js +0 -12
  41. package/addon/mirage-graphql/serializers/form.js +0 -11
  42. package/addon/mirage-graphql/serializers/question.js +0 -14
  43. package/addon/mirage-graphql/serializers/task.js +0 -16
  44. package/addon/mirage-graphql/serializers/work-item.js +0 -11
@@ -0,0 +1,287 @@
1
+ import faker from "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: "inquiry" });
60
+ server.create("task", {
61
+ slug: "compose-inquiry-answer",
62
+ type: "COMPLETE_WORKFLOW_FORM",
63
+ });
64
+ server.create("task", { slug: "confirm-inquiry-answer" });
65
+ server.create("task", { slug: "revise-inquiry-answer" });
66
+ server.create("task", {
67
+ slug: "adjust-inquiry-answer",
68
+ type: "COMPLETE_WORKFLOW_FORM",
69
+ });
70
+ }
71
+
72
+ export function createInquiry(
73
+ server,
74
+ distributionCase,
75
+ { from, to, remark, deadline },
76
+ workItemAttrs = {}
77
+ ) {
78
+ const document = server.create("document", { formId: "inquiry" });
79
+
80
+ server.create("answer", {
81
+ document,
82
+ questionId: "inquiry-remark",
83
+ value: remark ?? faker.lorem.paragraph(),
84
+ });
85
+
86
+ server.create("answer", {
87
+ document,
88
+ questionId: "inquiry-deadline",
89
+ value: deadline ?? faker.date.future(),
90
+ });
91
+
92
+ return server.create("work-item", {
93
+ taskId: "inquiry",
94
+ document,
95
+ status: "SUSPENDED",
96
+ case: distributionCase,
97
+ addressedGroups: [to.id],
98
+ controllingGroups: [from.id],
99
+ ...workItemAttrs,
100
+ });
101
+ }
102
+
103
+ export function sendInquiry(server, { inquiry }) {
104
+ const childCase = server.create("case", {
105
+ status: "RUNNING",
106
+ workflowId: "inquiry",
107
+ document: server.create("document", { formId: "inquiry-answer" }),
108
+ });
109
+
110
+ server.create("work-item", {
111
+ taskId: "compose-inquiry-answer",
112
+ status: "READY",
113
+ case: childCase,
114
+ addressedGroups: inquiry.addressedGroups,
115
+ });
116
+
117
+ inquiry.update({ status: "READY", childCase });
118
+
119
+ return inquiry;
120
+ }
121
+
122
+ export function answerInquiry(server, { inquiry, status, reason }) {
123
+ if (inquiry.status !== "READY") {
124
+ inquiry = sendInquiry(server, { inquiry });
125
+ }
126
+
127
+ server.create("answer", {
128
+ document: inquiry.childCase.document,
129
+ questionId: "inquiry-answer-status",
130
+ value: status,
131
+ });
132
+
133
+ server.create("answer", {
134
+ document: inquiry.childCase.document,
135
+ questionId: "inquiry-answer-reason",
136
+ value: reason ?? faker.lorem.paragraph(),
137
+ });
138
+
139
+ inquiry.childCase.workItems
140
+ .filter((workItem) => workItem.taskId === "compose-inquiry-answer")
141
+ .update({ status: "COMPLETED" });
142
+ server.create("work-item", {
143
+ taskId: "confirm-inquiry-answer",
144
+ status: "READY",
145
+ case: inquiry.childCase,
146
+ addressedGroups: inquiry.addressedGroups,
147
+ });
148
+ server.create("work-item", {
149
+ taskId: "revise-inquiry-answer",
150
+ status: "READY",
151
+ case: inquiry.childCase,
152
+ addressedGroups: inquiry.addressedGroups,
153
+ });
154
+
155
+ return inquiry;
156
+ }
157
+
158
+ export function confirmInquiry({ inquiry }) {
159
+ inquiry.update({ status: "COMPLETED" });
160
+ inquiry.childCase.update({
161
+ status: "COMPLETED",
162
+ closedAt: faker.date.recent(),
163
+ });
164
+ inquiry.childCase.workItems
165
+ .filter((workItem) => workItem.taskId === "confirm-inquiry-answer")
166
+ .update({ status: "COMPLETED" });
167
+ inquiry.childCase.workItems
168
+ .filter((workItem) => workItem.taskId === "revise-inquiry-answer")
169
+ .update({ status: "CANCELED" });
170
+
171
+ return inquiry;
172
+ }
173
+
174
+ export function reviseInquiry(server, { inquiry }) {
175
+ server.create("work-item", {
176
+ taskId: "adjust-inquiry-answer",
177
+ status: "READY",
178
+ case: inquiry.childCase,
179
+ addressedGroups: inquiry.addressedGroups,
180
+ });
181
+ inquiry.childCase.workItems
182
+ .filter((workItem) => workItem.taskId === "confirm-inquiry-answer")
183
+ .update({ status: "CANCELED" });
184
+ inquiry.childCase.workItems
185
+ .filter((workItem) => workItem.taskId === "revise-inquiry-answer")
186
+ .update({ status: "COMPLETED" });
187
+
188
+ return inquiry;
189
+ }
190
+
191
+ export default function (server, groups) {
192
+ createBlueprint(server);
193
+
194
+ const distributionCase = server.create("case", {
195
+ status: "RUNNING",
196
+ workflowId: "distribution",
197
+ });
198
+
199
+ const g = groups[0];
200
+ const g1 = groups[1];
201
+ const g2 = groups[2];
202
+ const g3 = groups[3];
203
+ const g4 = groups[4];
204
+
205
+ const create = (...args) => createInquiry(server, distributionCase, ...args);
206
+ const send = (...args) => sendInquiry(server, ...args);
207
+ const answer = (...args) => answerInquiry(server, ...args);
208
+ const confirm = (...args) => confirmInquiry(...args);
209
+ const revise = (...args) => reviseInquiry(server, ...args);
210
+
211
+ // controlling
212
+ create({ from: g, to: g1 });
213
+ send({
214
+ inquiry: create({
215
+ from: g,
216
+ to: g2,
217
+ deadline: faker.date.past(),
218
+ }),
219
+ });
220
+ confirm({
221
+ inquiry: answer({
222
+ inquiry: create({
223
+ from: g,
224
+ to: g3,
225
+ deadline: faker.date.past(),
226
+ }),
227
+ status: "inquiry-answer-status-needs-interaction",
228
+ }),
229
+ });
230
+
231
+ // "override" third controlling inquiry
232
+ confirm({
233
+ inquiry: answer({
234
+ inquiry: create({ from: g, to: g3 }, { createdAt: faker.date.recent() }),
235
+ status: "inquiry-answer-status-positive",
236
+ }),
237
+ });
238
+
239
+ // addressed
240
+ confirm({
241
+ inquiry: answer({
242
+ inquiry: create({ from: g2, to: g }),
243
+ status: "inquiry-answer-status-needs-interaction",
244
+ }),
245
+ });
246
+ // "override" first addressed inquiry
247
+ send({
248
+ inquiry: create(
249
+ {
250
+ from: g2,
251
+ to: g,
252
+ deadline: moment.utc().add(2, "days").toDate(),
253
+ },
254
+ { createdAt: faker.date.recent() }
255
+ ),
256
+ });
257
+ confirm({
258
+ inquiry: answer({
259
+ inquiry: create({ from: g4, to: g }),
260
+ status: "inquiry-answer-status-negative",
261
+ }),
262
+ });
263
+ answer({
264
+ inquiry: create({ from: g3, to: g }),
265
+ status: "inquiry-answer-status-positive",
266
+ });
267
+ revise({
268
+ inquiry: answer({
269
+ inquiry: create({ from: g1, to: g }),
270
+ status: "inquiry-answer-status-needs-interaction",
271
+ }),
272
+ });
273
+
274
+ // more
275
+ confirm({
276
+ inquiry: answer({
277
+ inquiry: create({ from: g2, to: g3 }),
278
+ status: "inquiry-answer-status-needs-interaction",
279
+ }),
280
+ });
281
+ confirm({
282
+ inquiry: answer({
283
+ inquiry: create({ from: g3, to: g4 }),
284
+ status: "inquiry-answer-status-positive",
285
+ }),
286
+ });
287
+ }
@@ -3,6 +3,8 @@ import faker from "faker";
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,11 +1,12 @@
1
1
  import { Factory } from "ember-cli-mirage";
2
2
  import faker from "faker";
3
3
 
4
- const STATUS = ["RUNNING", "COMPLETED", "CANCELED"];
4
+ const STATUS = ["RUNNING", "COMPLETED", "CANCELED", "SUSPENDED"];
5
5
 
6
6
  export default Factory.extend({
7
- createdByUser: faker.datatype.uuid(),
8
- createdAt: faker.date.past(),
9
- modifiedAt: faker.date.past(),
10
- status: faker.random.arrayElement(STATUS),
7
+ id: () => faker.datatype.uuid(),
8
+ createdByUser: () => faker.datatype.uuid(),
9
+ createdAt: () => faker.date.past(),
10
+ modifiedAt: () => faker.date.past(),
11
+ status: () => faker.random.arrayElement(STATUS),
11
12
  });
@@ -1,3 +1,6 @@
1
1
  import { Factory } from "ember-cli-mirage";
2
+ import faker from "faker";
2
3
 
3
- export default Factory.extend({});
4
+ export default Factory.extend({
5
+ id: () => faker.datatype.uuid(),
6
+ });
@@ -2,11 +2,12 @@ import { Factory } from "ember-cli-mirage";
2
2
  import faker from "faker";
3
3
 
4
4
  export default Factory.extend({
5
- createdAt: faker.date.past(),
6
- modifiedAt: faker.date.past(),
7
- createdByUser: faker.datatype.uuid(),
8
- uploadUrl: faker.internet.url(),
9
- downloadUrl: faker.internet.url(),
5
+ id: () => faker.datatype.uuid(),
6
+ createdAt: () => faker.date.past(),
7
+ modifiedAt: () => faker.date.past(),
8
+ createdByUser: () => faker.datatype.uuid(),
9
+ uploadUrl: () => faker.internet.url(),
10
+ downloadUrl: () => faker.internet.url(),
10
11
 
11
12
  afterCreate(file) {
12
13
  /*
@@ -2,6 +2,9 @@ import { Factory } from "ember-cli-mirage";
2
2
  import faker from "faker";
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(),
@@ -2,6 +2,9 @@ import { Factory } from "ember-cli-mirage";
2
2
  import faker from "faker";
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
1
  import { Factory } from "ember-cli-mirage";
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: () => ({}),
@@ -2,6 +2,10 @@ import { Factory } from "ember-cli-mirage";
2
2
  import faker from "faker";
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}`,
@@ -18,6 +22,11 @@ export default Factory.extend({
18
22
  maxLength: faker.datatype.number({ min: 1, max: 255 }),
19
23
  });
20
24
  }
25
+ if (question.minLength === undefined) {
26
+ question.update({
27
+ minLength: faker.datatype.number({ min: 1, max: 10 }),
28
+ });
29
+ }
21
30
  } else if (["INTEGER", "FLOAT"].includes(question.type)) {
22
31
  if (question.minValue === undefined) {
23
32
  question.update({
@@ -69,6 +78,16 @@ export default Factory.extend({
69
78
  staticContent: (i) => `static-${i + 1}`,
70
79
  });
71
80
  }
81
+ } else if (question.type === "ACTION_BUTTON") {
82
+ if (question.action === undefined) {
83
+ question.update({ action: "COMPLETE" });
84
+ }
85
+ if (question.color === undefined) {
86
+ question.update({ color: "PRIMARY" });
87
+ }
88
+ if (question.validateOnEnter === undefined) {
89
+ question.update({ validateOnEnter: false });
90
+ }
72
91
  }
73
92
  },
74
93
  });
@@ -1,12 +1,13 @@
1
1
  import { Factory } from "ember-cli-mirage";
2
2
  import faker from "faker";
3
3
 
4
- const TYPES = ["SIMPLE", "COMPLETE_WORKFLOW_FORM", "COMPLETE_TASK_FORM"];
5
-
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
- createdByUser: faker.datatype.uuid(),
11
- createdAt: faker.date.past(),
10
+ type: "SIMPLE",
11
+ createdByUser: () => faker.datatype.uuid(),
12
+ createdAt: () => faker.date.past(),
12
13
  });
@@ -1,13 +1,15 @@
1
1
  import { Factory } from "ember-cli-mirage";
2
2
  import faker from "faker";
3
3
 
4
- const STATUS = ["READY", "CANCELED", "COMPLETED", "SKIPPED"];
4
+ const STATUS = ["READY", "CANCELED", "COMPLETED", "SKIPPED", "SUSPENDED"];
5
5
 
6
6
  export default Factory.extend({
7
- createdByUser: faker.datatype.uuid(),
8
- createdAt: faker.date.past(),
9
- deadline: faker.date.future(),
10
- status: faker.random.arrayElement(STATUS),
7
+ id: () => faker.datatype.uuid(),
8
+ name: () => faker.lorem.words(5),
9
+ createdByUser: () => faker.datatype.uuid(),
10
+ createdAt: () => faker.date.past(),
11
+ deadline: () => faker.date.future(),
12
+ status: () => faker.random.arrayElement(STATUS),
11
13
  addressedGroups: () => ["group1", "group2"],
12
14
  closedAt() {
13
15
  return STATUS.filter((s) => s !== "READY").includes(this.status)
@@ -0,0 +1,9 @@
1
+ import { Factory } from "ember-cli-mirage";
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 "ember-cli-mirage";
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
  });
@@ -3,5 +3,6 @@ import { Model, belongsTo, hasMany } from "ember-cli-mirage";
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
  });
@@ -4,4 +4,5 @@ export default Model.extend({
4
4
  form: belongsTo(),
5
5
  answers: hasMany(),
6
6
  case: belongsTo(),
7
+ workItem: belongsTo(),
7
8
  });
@@ -1,5 +1,5 @@
1
1
  import { Model, hasMany } from "ember-cli-mirage";
2
2
 
3
3
  export default Model.extend({
4
- questions: hasMany(),
4
+ questions: hasMany({ inverse: "forms" }),
5
5
  });
@@ -1,7 +1,9 @@
1
1
  import { Model, hasMany, belongsTo } from "ember-cli-mirage";
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
  });
@@ -2,5 +2,7 @@ import { Model, belongsTo } from "ember-cli-mirage";
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
  });
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,11 +1,13 @@
1
1
  {
2
2
  "name": "@projectcaluma/ember-testing",
3
- "version": "9.0.0",
3
+ "version": "10.2.0-beta.1",
4
4
  "description": "Ember addon for testing with Caluma addons.",
5
5
  "keywords": [
6
6
  "ember-addon"
7
7
  ],
8
8
  "license": "LGPL-3.0-or-later",
9
+ "homepage": "https://docs.caluma.io/ember-caluma",
10
+ "repository": "github:projectcaluma/ember-caluma",
9
11
  "scripts": {
10
12
  "test": "npm-run-all test:*",
11
13
  "test:ember": "ember test",
@@ -15,23 +17,25 @@
15
17
  "broccoli-funnel": "^3.0.8",
16
18
  "broccoli-merge-trees": "^4.2.0",
17
19
  "ember-apollo-client": "^3.2.0",
18
- "ember-auto-import": "^2.2.0",
19
- "ember-cli-babel": "^7.26.6",
20
- "ember-cli-htmlbars": "^5.7.1",
20
+ "ember-auto-import": "^2.2.3",
21
+ "ember-cli-babel": "^7.26.11",
22
+ "ember-cli-htmlbars": "^6.0.1",
21
23
  "ember-cli-mirage": "^2.2.0",
22
24
  "ember-fetch": "^8.0.4",
25
+ "ember-inflector": "^4.0.2",
23
26
  "faker": "^5.5.3",
24
- "graphql": "^15.5.3",
27
+ "graphql": "^15.8.0",
25
28
  "graphql-iso-date": "^3.6.1",
26
29
  "graphql-tools": "^4.0.8",
27
30
  "moment": "^2.29.1"
28
31
  },
29
32
  "devDependencies": {
30
33
  "@ember/optional-features": "2.0.0",
31
- "@ember/test-helpers": "2.4.2",
32
- "@embroider/test-setup": "0.44.1",
34
+ "@ember/test-helpers": "2.6.0",
35
+ "@embroider/test-setup": "0.49.0",
33
36
  "broccoli-asset-rev": "3.0.0",
34
- "ember-cli": "3.28.0",
37
+ "ember-cli": "3.28.5",
38
+ "ember-cli-code-coverage": "1.0.3",
35
39
  "ember-cli-dependency-checker": "3.2.0",
36
40
  "ember-cli-inject-live-reload": "2.1.0",
37
41
  "ember-cli-sri": "2.1.1",
@@ -40,20 +44,20 @@
40
44
  "ember-export-application-global": "2.0.1",
41
45
  "ember-load-initializers": "2.1.2",
42
46
  "ember-maybe-import-regenerator": "1.0.0",
43
- "ember-qunit": "5.1.4",
47
+ "ember-qunit": "5.1.5",
44
48
  "ember-resolver": "8.0.3",
45
- "ember-source": "3.28.1",
49
+ "ember-source": "3.28.8",
46
50
  "ember-source-channel-url": "3.0.0",
47
- "ember-try": "1.4.0",
51
+ "ember-try": "2.0.0",
48
52
  "get-graphql-schema": "2.1.2",
49
- "graphql-tag": "2.12.5",
53
+ "graphql-tag": "2.12.6",
50
54
  "loader.js": "4.7.0",
51
- "qunit": "2.17.1",
55
+ "qunit": "2.17.2",
52
56
  "qunit-dom": "2.0.0",
53
- "webpack": "5.52.1"
57
+ "webpack": "5.65.0"
54
58
  },
55
59
  "engines": {
56
- "node": "10.* || >= 12"
60
+ "node": "12.* || 14.* || >= 16"
57
61
  },
58
62
  "ember": {
59
63
  "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
- }
@@ -1,55 +0,0 @@
1
- import { classify } from "@ember/string";
2
-
3
- import { register } from "@projectcaluma/ember-testing/mirage-graphql";
4
- import BaseMock from "@projectcaluma/ember-testing/mirage-graphql/mocks/base";
5
-
6
- export default class extends BaseMock {
7
- @register("Task")
8
- handleTask(root, vars, ...args) {
9
- const serialized = this.handle.fn.call(this, root, vars);
10
-
11
- let taskId =
12
- root.taskId || (root.node && root.node(root, vars, ...args).id);
13
-
14
- try {
15
- taskId = atob(taskId).split(":")[1];
16
- } catch (e) {
17
- // pass
18
- }
19
-
20
- let __typename = root.__typename;
21
-
22
- if (taskId) {
23
- __typename = `${classify(
24
- this.collection.findBy({ id: taskId }).type.toLowerCase()
25
- )}Task`;
26
- }
27
-
28
- return { ...serialized, __typename };
29
- }
30
-
31
- handleInterfaceType(root, vars, _, meta) {
32
- return this.handle.fn.call(
33
- this,
34
- root,
35
- { ...vars, id: root.taskId },
36
- _,
37
- meta
38
- );
39
- }
40
-
41
- @register("SimpleTask")
42
- handleSimpleTask(...args) {
43
- return this.handleInterfaceType(...args);
44
- }
45
-
46
- @register("CompleteWorkflowFormTask")
47
- handleCompleteWorkflowForm(...args) {
48
- return this.handleInterfaceType(...args);
49
- }
50
-
51
- @register("CompleteTaskFormTask")
52
- handleCompleteTaskForm(...args) {
53
- return this.handleInterfaceType(...args);
54
- }
55
- }