weave-typescript 0.11.14 → 0.11.16
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/dist/weaveapi/data/v1/data.pb.d.ts +54 -0
- package/dist/weaveapi/data/v1/data.pb.js +411 -0
- package/dist/weaveapi/data/v1/service.pb.d.ts +296 -0
- package/dist/weaveapi/data/v1/service.pb.js +2779 -0
- package/dist/weaveapi/input/v1/input.pb.d.ts +77 -0
- package/dist/weaveapi/input/v1/input.pb.js +632 -0
- package/dist/weaveapi/input/v1/service.pb.d.ts +390 -0
- package/dist/weaveapi/input/v1/service.pb.js +3612 -0
- package/dist/weaveapi/integration/v1/integration.pb.d.ts +67 -0
- package/dist/weaveapi/integration/v1/integration.pb.js +486 -0
- package/dist/weaveapi/integration/v1/service.pb.d.ts +318 -0
- package/dist/weaveapi/integration/v1/service.pb.js +2994 -0
- package/dist/weaveapi/project/v1/project.pb.d.ts +1 -0
- package/dist/weaveapi/project/v1/project.pb.js +17 -1
- package/dist/weaveapi/project/v1/service.pb.d.ts +25 -0
- package/dist/weaveapi/project/v1/service.pb.js +248 -5
- package/dist/weaveapi/report/v1/report.pb.d.ts +81 -0
- package/dist/weaveapi/report/v1/report.pb.js +678 -0
- package/dist/weaveapi/report/v1/service.pb.d.ts +194 -0
- package/dist/weaveapi/report/v1/service.pb.js +1925 -0
- package/dist/weaveapi/requirement/v1/requirement.pb.d.ts +70 -0
- package/dist/weaveapi/requirement/v1/requirement.pb.js +570 -0
- package/dist/weaveapi/requirement/v1/service.pb.d.ts +390 -0
- package/dist/weaveapi/requirement/v1/service.pb.js +3638 -0
- package/dist/weaveapi/run/v1/run.pb.d.ts +117 -0
- package/dist/weaveapi/run/v1/run.pb.js +1155 -0
- package/dist/weaveapi/run/v1/service.pb.d.ts +229 -0
- package/dist/weaveapi/run/v1/service.pb.js +2428 -0
- package/dist/weaveapi/script/v1/script.pb.d.ts +102 -0
- package/dist/weaveapi/script/v1/script.pb.js +1025 -0
- package/dist/weaveapi/script/v1/service.pb.d.ts +502 -0
- package/dist/weaveapi/script/v1/service.pb.js +4873 -0
- package/dist/weaveapi/storage/v1/service.pb.d.ts +4 -0
- package/dist/weaveapi/storage/v1/service.pb.js +50 -7
- package/dist/weaveapi/storage/v1/storage.pb.d.ts +2 -0
- package/dist/weaveapi/storage/v1/storage.pb.js +23 -0
- package/dist/weaveapi/storage/v1/vcs.pb.d.ts +75 -0
- package/dist/weaveapi/storage/v1/vcs.pb.js +864 -0
- package/dist/weaveapi/suite/v1/service.pb.d.ts +539 -0
- package/dist/weaveapi/suite/v1/service.pb.js +5281 -0
- package/dist/weaveapi/suite/v1/suite.pb.d.ts +92 -0
- package/dist/weaveapi/suite/v1/suite.pb.js +876 -0
- package/dist/weaveapi/testcase/v1/service.pb.d.ts +498 -0
- package/dist/weaveapi/testcase/v1/service.pb.js +4730 -0
- package/dist/weaveapi/testcase/v1/testcase.pb.d.ts +91 -0
- package/dist/weaveapi/testcase/v1/testcase.pb.js +794 -0
- package/dist/weaveapi/workflow/v1/service.pb.d.ts +26 -0
- package/dist/weaveapi/workflow/v1/service.pb.js +293 -5
- package/dist/weaveapi/workflow/v1/workflow.pb.d.ts +1 -0
- package/dist/weaveapi/workflow/v1/workflow.pb.js +17 -1
- package/dist/weavesql/weavedb/data_asset_sql.d.ts +206 -0
- package/dist/weavesql/weavedb/data_asset_sql.js +335 -0
- package/dist/weavesql/weavedb/input_sql.d.ts +293 -0
- package/dist/weavesql/weavedb/input_sql.js +500 -0
- package/dist/weavesql/weavedb/integration_sql.d.ts +236 -0
- package/dist/weavesql/weavedb/integration_sql.js +377 -0
- package/dist/weavesql/weavedb/project_sql.d.ts +29 -5
- package/dist/weavesql/weavedb/project_sql.js +73 -37
- package/dist/weavesql/weavedb/report_sql.d.ts +192 -0
- package/dist/weavesql/weavedb/report_sql.js +308 -0
- package/dist/weavesql/weavedb/requirement_sql.d.ts +231 -0
- package/dist/weavesql/weavedb/requirement_sql.js +399 -0
- package/dist/weavesql/weavedb/run_sql.d.ts +283 -0
- package/dist/weavesql/weavedb/run_sql.js +462 -0
- package/dist/weavesql/weavedb/suite_sql.d.ts +354 -0
- package/dist/weavesql/weavedb/suite_sql.js +631 -0
- package/dist/weavesql/weavedb/test_case_sql.d.ts +325 -0
- package/dist/weavesql/weavedb/test_case_sql.js +563 -0
- package/dist/weavesql/weavedb/test_script_sql.d.ts +354 -0
- package/dist/weavesql/weavedb/test_script_sql.js +605 -0
- package/dist/weavesql/weavedb/traceability_sql.d.ts +117 -0
- package/dist/weavesql/weavedb/traceability_sql.js +363 -0
- package/dist/weavesql/weavedb/workflow_sql.d.ts +30 -5
- package/dist/weavesql/weavedb/workflow_sql.js +76 -38
- package/package.json +1 -1
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listTestCaseRequirementLinksQuery = exports.deleteTestCaseRequirementLinkQuery = exports.upsertTestCaseRequirementLinkQuery = exports.setCurrentTestCaseVersionQuery = exports.getNextTestCaseVersionNumberQuery = exports.listTestCaseVersionsQuery = exports.getTestCaseVersionQuery = exports.createTestCaseVersionQuery = exports.listWorkflowTestCaseBindingsQuery = exports.detachTestCaseFromWorkflowQuery = exports.attachTestCaseToWorkflowQuery = exports.deleteTestCaseQuery = exports.archiveTestCaseQuery = exports.updateTestCaseQuery = exports.listTestCasesByWorkflowQuery = exports.listTestCasesByProjectQuery = exports.getTestCaseQuery = exports.createTestCaseQuery = void 0;
|
|
4
|
+
exports.createTestCase = createTestCase;
|
|
5
|
+
exports.getTestCase = getTestCase;
|
|
6
|
+
exports.listTestCasesByProject = listTestCasesByProject;
|
|
7
|
+
exports.listTestCasesByWorkflow = listTestCasesByWorkflow;
|
|
8
|
+
exports.updateTestCase = updateTestCase;
|
|
9
|
+
exports.archiveTestCase = archiveTestCase;
|
|
10
|
+
exports.deleteTestCase = deleteTestCase;
|
|
11
|
+
exports.attachTestCaseToWorkflow = attachTestCaseToWorkflow;
|
|
12
|
+
exports.detachTestCaseFromWorkflow = detachTestCaseFromWorkflow;
|
|
13
|
+
exports.listWorkflowTestCaseBindings = listWorkflowTestCaseBindings;
|
|
14
|
+
exports.createTestCaseVersion = createTestCaseVersion;
|
|
15
|
+
exports.getTestCaseVersion = getTestCaseVersion;
|
|
16
|
+
exports.listTestCaseVersions = listTestCaseVersions;
|
|
17
|
+
exports.getNextTestCaseVersionNumber = getNextTestCaseVersionNumber;
|
|
18
|
+
exports.setCurrentTestCaseVersion = setCurrentTestCaseVersion;
|
|
19
|
+
exports.upsertTestCaseRequirementLink = upsertTestCaseRequirementLink;
|
|
20
|
+
exports.deleteTestCaseRequirementLink = deleteTestCaseRequirementLink;
|
|
21
|
+
exports.listTestCaseRequirementLinks = listTestCaseRequirementLinks;
|
|
22
|
+
exports.createTestCaseQuery = `-- name: CreateTestCase :one
|
|
23
|
+
INSERT INTO weave_v1.test_case (
|
|
24
|
+
id,
|
|
25
|
+
project_id,
|
|
26
|
+
key,
|
|
27
|
+
title,
|
|
28
|
+
description,
|
|
29
|
+
type,
|
|
30
|
+
status,
|
|
31
|
+
priority,
|
|
32
|
+
metadata
|
|
33
|
+
)
|
|
34
|
+
VALUES (
|
|
35
|
+
$1,
|
|
36
|
+
$2,
|
|
37
|
+
$3,
|
|
38
|
+
$4,
|
|
39
|
+
$5,
|
|
40
|
+
$6,
|
|
41
|
+
$7,
|
|
42
|
+
$8,
|
|
43
|
+
$9
|
|
44
|
+
)
|
|
45
|
+
RETURNING id, project_id, key, title, description, type, status, priority, current_version_id, metadata, created_at, updated_at, archived_at`;
|
|
46
|
+
async function createTestCase(client, args) {
|
|
47
|
+
const result = await client.query({
|
|
48
|
+
text: exports.createTestCaseQuery,
|
|
49
|
+
values: [args.id, args.projectId, args.key, args.title, args.description, args.type, args.status, args.priority, args.metadata],
|
|
50
|
+
rowMode: "array"
|
|
51
|
+
});
|
|
52
|
+
if (result.rows.length !== 1) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
const row = result.rows[0];
|
|
56
|
+
return {
|
|
57
|
+
id: row[0],
|
|
58
|
+
projectId: row[1],
|
|
59
|
+
key: row[2],
|
|
60
|
+
title: row[3],
|
|
61
|
+
description: row[4],
|
|
62
|
+
type: row[5],
|
|
63
|
+
status: row[6],
|
|
64
|
+
priority: row[7],
|
|
65
|
+
currentVersionId: row[8],
|
|
66
|
+
metadata: row[9],
|
|
67
|
+
createdAt: row[10],
|
|
68
|
+
updatedAt: row[11],
|
|
69
|
+
archivedAt: row[12]
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
exports.getTestCaseQuery = `-- name: GetTestCase :one
|
|
73
|
+
SELECT id, project_id, key, title, description, type, status, priority, current_version_id, metadata, created_at, updated_at, archived_at
|
|
74
|
+
FROM weave_v1.test_case
|
|
75
|
+
WHERE id = $1
|
|
76
|
+
AND project_id = $2`;
|
|
77
|
+
async function getTestCase(client, args) {
|
|
78
|
+
const result = await client.query({
|
|
79
|
+
text: exports.getTestCaseQuery,
|
|
80
|
+
values: [args.id, args.projectId],
|
|
81
|
+
rowMode: "array"
|
|
82
|
+
});
|
|
83
|
+
if (result.rows.length !== 1) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
const row = result.rows[0];
|
|
87
|
+
return {
|
|
88
|
+
id: row[0],
|
|
89
|
+
projectId: row[1],
|
|
90
|
+
key: row[2],
|
|
91
|
+
title: row[3],
|
|
92
|
+
description: row[4],
|
|
93
|
+
type: row[5],
|
|
94
|
+
status: row[6],
|
|
95
|
+
priority: row[7],
|
|
96
|
+
currentVersionId: row[8],
|
|
97
|
+
metadata: row[9],
|
|
98
|
+
createdAt: row[10],
|
|
99
|
+
updatedAt: row[11],
|
|
100
|
+
archivedAt: row[12]
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
exports.listTestCasesByProjectQuery = `-- name: ListTestCasesByProject :many
|
|
104
|
+
SELECT id, project_id, key, title, description, type, status, priority, current_version_id, metadata, created_at, updated_at, archived_at
|
|
105
|
+
FROM weave_v1.test_case
|
|
106
|
+
WHERE project_id = $1
|
|
107
|
+
AND ($2::BOOLEAN OR archived_at IS NULL)
|
|
108
|
+
ORDER BY updated_at DESC
|
|
109
|
+
LIMIT $4
|
|
110
|
+
OFFSET $3`;
|
|
111
|
+
async function listTestCasesByProject(client, args) {
|
|
112
|
+
const result = await client.query({
|
|
113
|
+
text: exports.listTestCasesByProjectQuery,
|
|
114
|
+
values: [args.projectId, args.includeArchived, args.pageOffset, args.pageSize],
|
|
115
|
+
rowMode: "array"
|
|
116
|
+
});
|
|
117
|
+
return result.rows.map(row => {
|
|
118
|
+
return {
|
|
119
|
+
id: row[0],
|
|
120
|
+
projectId: row[1],
|
|
121
|
+
key: row[2],
|
|
122
|
+
title: row[3],
|
|
123
|
+
description: row[4],
|
|
124
|
+
type: row[5],
|
|
125
|
+
status: row[6],
|
|
126
|
+
priority: row[7],
|
|
127
|
+
currentVersionId: row[8],
|
|
128
|
+
metadata: row[9],
|
|
129
|
+
createdAt: row[10],
|
|
130
|
+
updatedAt: row[11],
|
|
131
|
+
archivedAt: row[12]
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
exports.listTestCasesByWorkflowQuery = `-- name: ListTestCasesByWorkflow :many
|
|
136
|
+
SELECT c.id, c.project_id, c.key, c.title, c.description, c.type, c.status, c.priority, c.current_version_id, c.metadata, c.created_at, c.updated_at, c.archived_at
|
|
137
|
+
FROM weave_v1.test_case c
|
|
138
|
+
INNER JOIN weave_v1.workflow_test_case b
|
|
139
|
+
ON b.test_case_id = c.id
|
|
140
|
+
AND b.project_id = c.project_id
|
|
141
|
+
WHERE b.project_id = $1
|
|
142
|
+
AND b.workflow_id = $2
|
|
143
|
+
AND ($3::BOOLEAN OR c.archived_at IS NULL)
|
|
144
|
+
ORDER BY c.updated_at DESC
|
|
145
|
+
LIMIT $5
|
|
146
|
+
OFFSET $4`;
|
|
147
|
+
async function listTestCasesByWorkflow(client, args) {
|
|
148
|
+
const result = await client.query({
|
|
149
|
+
text: exports.listTestCasesByWorkflowQuery,
|
|
150
|
+
values: [args.projectId, args.workflowId, args.includeArchived, args.pageOffset, args.pageSize],
|
|
151
|
+
rowMode: "array"
|
|
152
|
+
});
|
|
153
|
+
return result.rows.map(row => {
|
|
154
|
+
return {
|
|
155
|
+
id: row[0],
|
|
156
|
+
projectId: row[1],
|
|
157
|
+
key: row[2],
|
|
158
|
+
title: row[3],
|
|
159
|
+
description: row[4],
|
|
160
|
+
type: row[5],
|
|
161
|
+
status: row[6],
|
|
162
|
+
priority: row[7],
|
|
163
|
+
currentVersionId: row[8],
|
|
164
|
+
metadata: row[9],
|
|
165
|
+
createdAt: row[10],
|
|
166
|
+
updatedAt: row[11],
|
|
167
|
+
archivedAt: row[12]
|
|
168
|
+
};
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
exports.updateTestCaseQuery = `-- name: UpdateTestCase :one
|
|
172
|
+
UPDATE weave_v1.test_case
|
|
173
|
+
SET key = $1,
|
|
174
|
+
title = $2,
|
|
175
|
+
description = $3,
|
|
176
|
+
type = $4,
|
|
177
|
+
status = $5,
|
|
178
|
+
priority = $6,
|
|
179
|
+
metadata = $7,
|
|
180
|
+
updated_at = NOW()
|
|
181
|
+
WHERE id = $8
|
|
182
|
+
AND project_id = $9
|
|
183
|
+
RETURNING id, project_id, key, title, description, type, status, priority, current_version_id, metadata, created_at, updated_at, archived_at`;
|
|
184
|
+
async function updateTestCase(client, args) {
|
|
185
|
+
const result = await client.query({
|
|
186
|
+
text: exports.updateTestCaseQuery,
|
|
187
|
+
values: [args.key, args.title, args.description, args.type, args.status, args.priority, args.metadata, args.id, args.projectId],
|
|
188
|
+
rowMode: "array"
|
|
189
|
+
});
|
|
190
|
+
if (result.rows.length !== 1) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
const row = result.rows[0];
|
|
194
|
+
return {
|
|
195
|
+
id: row[0],
|
|
196
|
+
projectId: row[1],
|
|
197
|
+
key: row[2],
|
|
198
|
+
title: row[3],
|
|
199
|
+
description: row[4],
|
|
200
|
+
type: row[5],
|
|
201
|
+
status: row[6],
|
|
202
|
+
priority: row[7],
|
|
203
|
+
currentVersionId: row[8],
|
|
204
|
+
metadata: row[9],
|
|
205
|
+
createdAt: row[10],
|
|
206
|
+
updatedAt: row[11],
|
|
207
|
+
archivedAt: row[12]
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
exports.archiveTestCaseQuery = `-- name: ArchiveTestCase :one
|
|
211
|
+
UPDATE weave_v1.test_case
|
|
212
|
+
SET status = 'archived',
|
|
213
|
+
archived_at = NOW(),
|
|
214
|
+
updated_at = NOW()
|
|
215
|
+
WHERE id = $1
|
|
216
|
+
AND project_id = $2
|
|
217
|
+
RETURNING id, project_id, key, title, description, type, status, priority, current_version_id, metadata, created_at, updated_at, archived_at`;
|
|
218
|
+
async function archiveTestCase(client, args) {
|
|
219
|
+
const result = await client.query({
|
|
220
|
+
text: exports.archiveTestCaseQuery,
|
|
221
|
+
values: [args.id, args.projectId],
|
|
222
|
+
rowMode: "array"
|
|
223
|
+
});
|
|
224
|
+
if (result.rows.length !== 1) {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
const row = result.rows[0];
|
|
228
|
+
return {
|
|
229
|
+
id: row[0],
|
|
230
|
+
projectId: row[1],
|
|
231
|
+
key: row[2],
|
|
232
|
+
title: row[3],
|
|
233
|
+
description: row[4],
|
|
234
|
+
type: row[5],
|
|
235
|
+
status: row[6],
|
|
236
|
+
priority: row[7],
|
|
237
|
+
currentVersionId: row[8],
|
|
238
|
+
metadata: row[9],
|
|
239
|
+
createdAt: row[10],
|
|
240
|
+
updatedAt: row[11],
|
|
241
|
+
archivedAt: row[12]
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
exports.deleteTestCaseQuery = `-- name: DeleteTestCase :exec
|
|
245
|
+
DELETE
|
|
246
|
+
FROM weave_v1.test_case
|
|
247
|
+
WHERE id = $1
|
|
248
|
+
AND project_id = $2`;
|
|
249
|
+
async function deleteTestCase(client, args) {
|
|
250
|
+
await client.query({
|
|
251
|
+
text: exports.deleteTestCaseQuery,
|
|
252
|
+
values: [args.id, args.projectId],
|
|
253
|
+
rowMode: "array"
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
exports.attachTestCaseToWorkflowQuery = `-- name: AttachTestCaseToWorkflow :one
|
|
257
|
+
INSERT INTO weave_v1.workflow_test_case (
|
|
258
|
+
project_id,
|
|
259
|
+
workflow_id,
|
|
260
|
+
test_case_id,
|
|
261
|
+
attached_by,
|
|
262
|
+
metadata
|
|
263
|
+
)
|
|
264
|
+
VALUES (
|
|
265
|
+
$1,
|
|
266
|
+
$2,
|
|
267
|
+
$3,
|
|
268
|
+
$4,
|
|
269
|
+
$5
|
|
270
|
+
)
|
|
271
|
+
ON CONFLICT (workflow_id, test_case_id) DO UPDATE
|
|
272
|
+
SET attached_by = EXCLUDED.attached_by,
|
|
273
|
+
metadata = EXCLUDED.metadata,
|
|
274
|
+
attached_at = NOW()
|
|
275
|
+
RETURNING project_id, workflow_id, test_case_id, attached_by, metadata, attached_at`;
|
|
276
|
+
async function attachTestCaseToWorkflow(client, args) {
|
|
277
|
+
const result = await client.query({
|
|
278
|
+
text: exports.attachTestCaseToWorkflowQuery,
|
|
279
|
+
values: [args.projectId, args.workflowId, args.testCaseId, args.attachedBy, args.metadata],
|
|
280
|
+
rowMode: "array"
|
|
281
|
+
});
|
|
282
|
+
if (result.rows.length !== 1) {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
const row = result.rows[0];
|
|
286
|
+
return {
|
|
287
|
+
projectId: row[0],
|
|
288
|
+
workflowId: row[1],
|
|
289
|
+
testCaseId: row[2],
|
|
290
|
+
attachedBy: row[3],
|
|
291
|
+
metadata: row[4],
|
|
292
|
+
attachedAt: row[5]
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
exports.detachTestCaseFromWorkflowQuery = `-- name: DetachTestCaseFromWorkflow :exec
|
|
296
|
+
DELETE
|
|
297
|
+
FROM weave_v1.workflow_test_case
|
|
298
|
+
WHERE project_id = $1
|
|
299
|
+
AND workflow_id = $2
|
|
300
|
+
AND test_case_id = $3`;
|
|
301
|
+
async function detachTestCaseFromWorkflow(client, args) {
|
|
302
|
+
await client.query({
|
|
303
|
+
text: exports.detachTestCaseFromWorkflowQuery,
|
|
304
|
+
values: [args.projectId, args.workflowId, args.testCaseId],
|
|
305
|
+
rowMode: "array"
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
exports.listWorkflowTestCaseBindingsQuery = `-- name: ListWorkflowTestCaseBindings :many
|
|
309
|
+
SELECT project_id, workflow_id, test_case_id, attached_by, metadata, attached_at
|
|
310
|
+
FROM weave_v1.workflow_test_case
|
|
311
|
+
WHERE project_id = $1
|
|
312
|
+
AND workflow_id = $2
|
|
313
|
+
ORDER BY attached_at DESC
|
|
314
|
+
LIMIT $4
|
|
315
|
+
OFFSET $3`;
|
|
316
|
+
async function listWorkflowTestCaseBindings(client, args) {
|
|
317
|
+
const result = await client.query({
|
|
318
|
+
text: exports.listWorkflowTestCaseBindingsQuery,
|
|
319
|
+
values: [args.projectId, args.workflowId, args.pageOffset, args.pageSize],
|
|
320
|
+
rowMode: "array"
|
|
321
|
+
});
|
|
322
|
+
return result.rows.map(row => {
|
|
323
|
+
return {
|
|
324
|
+
projectId: row[0],
|
|
325
|
+
workflowId: row[1],
|
|
326
|
+
testCaseId: row[2],
|
|
327
|
+
attachedBy: row[3],
|
|
328
|
+
metadata: row[4],
|
|
329
|
+
attachedAt: row[5]
|
|
330
|
+
};
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
exports.createTestCaseVersionQuery = `-- name: CreateTestCaseVersion :one
|
|
334
|
+
INSERT INTO weave_v1.test_case_version (
|
|
335
|
+
id,
|
|
336
|
+
test_case_id,
|
|
337
|
+
version_number,
|
|
338
|
+
objective,
|
|
339
|
+
preconditions,
|
|
340
|
+
steps,
|
|
341
|
+
expected_results,
|
|
342
|
+
metadata,
|
|
343
|
+
prompt_version
|
|
344
|
+
)
|
|
345
|
+
VALUES (
|
|
346
|
+
$1,
|
|
347
|
+
$2,
|
|
348
|
+
$3,
|
|
349
|
+
$4,
|
|
350
|
+
$5,
|
|
351
|
+
$6,
|
|
352
|
+
$7,
|
|
353
|
+
$8,
|
|
354
|
+
$9
|
|
355
|
+
)
|
|
356
|
+
RETURNING id, test_case_id, version_number, objective, preconditions, steps, expected_results, metadata, prompt_version, created_at`;
|
|
357
|
+
async function createTestCaseVersion(client, args) {
|
|
358
|
+
const result = await client.query({
|
|
359
|
+
text: exports.createTestCaseVersionQuery,
|
|
360
|
+
values: [args.id, args.testCaseId, args.versionNumber, args.objective, args.preconditions, args.steps, args.expectedResults, args.metadata, args.promptVersion],
|
|
361
|
+
rowMode: "array"
|
|
362
|
+
});
|
|
363
|
+
if (result.rows.length !== 1) {
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
const row = result.rows[0];
|
|
367
|
+
return {
|
|
368
|
+
id: row[0],
|
|
369
|
+
testCaseId: row[1],
|
|
370
|
+
versionNumber: row[2],
|
|
371
|
+
objective: row[3],
|
|
372
|
+
preconditions: row[4],
|
|
373
|
+
steps: row[5],
|
|
374
|
+
expectedResults: row[6],
|
|
375
|
+
metadata: row[7],
|
|
376
|
+
promptVersion: row[8],
|
|
377
|
+
createdAt: row[9]
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
exports.getTestCaseVersionQuery = `-- name: GetTestCaseVersion :one
|
|
381
|
+
SELECT cv.id, cv.test_case_id, cv.version_number, cv.objective, cv.preconditions, cv.steps, cv.expected_results, cv.metadata, cv.prompt_version, cv.created_at
|
|
382
|
+
FROM weave_v1.test_case_version cv
|
|
383
|
+
INNER JOIN weave_v1.test_case c ON c.id = cv.test_case_id
|
|
384
|
+
WHERE cv.id = $1
|
|
385
|
+
AND cv.test_case_id = $2
|
|
386
|
+
AND c.project_id = $3`;
|
|
387
|
+
async function getTestCaseVersion(client, args) {
|
|
388
|
+
const result = await client.query({
|
|
389
|
+
text: exports.getTestCaseVersionQuery,
|
|
390
|
+
values: [args.id, args.testCaseId, args.projectId],
|
|
391
|
+
rowMode: "array"
|
|
392
|
+
});
|
|
393
|
+
if (result.rows.length !== 1) {
|
|
394
|
+
return null;
|
|
395
|
+
}
|
|
396
|
+
const row = result.rows[0];
|
|
397
|
+
return {
|
|
398
|
+
id: row[0],
|
|
399
|
+
testCaseId: row[1],
|
|
400
|
+
versionNumber: row[2],
|
|
401
|
+
objective: row[3],
|
|
402
|
+
preconditions: row[4],
|
|
403
|
+
steps: row[5],
|
|
404
|
+
expectedResults: row[6],
|
|
405
|
+
metadata: row[7],
|
|
406
|
+
promptVersion: row[8],
|
|
407
|
+
createdAt: row[9]
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
exports.listTestCaseVersionsQuery = `-- name: ListTestCaseVersions :many
|
|
411
|
+
SELECT cv.id, cv.test_case_id, cv.version_number, cv.objective, cv.preconditions, cv.steps, cv.expected_results, cv.metadata, cv.prompt_version, cv.created_at
|
|
412
|
+
FROM weave_v1.test_case_version cv
|
|
413
|
+
INNER JOIN weave_v1.test_case c ON c.id = cv.test_case_id
|
|
414
|
+
WHERE cv.test_case_id = $1
|
|
415
|
+
AND c.project_id = $2
|
|
416
|
+
ORDER BY cv.version_number DESC
|
|
417
|
+
LIMIT $4
|
|
418
|
+
OFFSET $3`;
|
|
419
|
+
async function listTestCaseVersions(client, args) {
|
|
420
|
+
const result = await client.query({
|
|
421
|
+
text: exports.listTestCaseVersionsQuery,
|
|
422
|
+
values: [args.testCaseId, args.projectId, args.pageOffset, args.pageSize],
|
|
423
|
+
rowMode: "array"
|
|
424
|
+
});
|
|
425
|
+
return result.rows.map(row => {
|
|
426
|
+
return {
|
|
427
|
+
id: row[0],
|
|
428
|
+
testCaseId: row[1],
|
|
429
|
+
versionNumber: row[2],
|
|
430
|
+
objective: row[3],
|
|
431
|
+
preconditions: row[4],
|
|
432
|
+
steps: row[5],
|
|
433
|
+
expectedResults: row[6],
|
|
434
|
+
metadata: row[7],
|
|
435
|
+
promptVersion: row[8],
|
|
436
|
+
createdAt: row[9]
|
|
437
|
+
};
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
exports.getNextTestCaseVersionNumberQuery = `-- name: GetNextTestCaseVersionNumber :one
|
|
441
|
+
SELECT COALESCE(MAX(version_number), 0)::INTEGER + 1 AS version_number
|
|
442
|
+
FROM weave_v1.test_case_version
|
|
443
|
+
WHERE test_case_id = $1`;
|
|
444
|
+
async function getNextTestCaseVersionNumber(client, args) {
|
|
445
|
+
const result = await client.query({
|
|
446
|
+
text: exports.getNextTestCaseVersionNumberQuery,
|
|
447
|
+
values: [args.testCaseId],
|
|
448
|
+
rowMode: "array"
|
|
449
|
+
});
|
|
450
|
+
if (result.rows.length !== 1) {
|
|
451
|
+
return null;
|
|
452
|
+
}
|
|
453
|
+
const row = result.rows[0];
|
|
454
|
+
return {
|
|
455
|
+
versionNumber: row[0]
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
exports.setCurrentTestCaseVersionQuery = `-- name: SetCurrentTestCaseVersion :one
|
|
459
|
+
UPDATE weave_v1.test_case
|
|
460
|
+
SET current_version_id = $1,
|
|
461
|
+
updated_at = NOW()
|
|
462
|
+
WHERE id = $2
|
|
463
|
+
AND project_id = $3
|
|
464
|
+
RETURNING id, project_id, key, title, description, type, status, priority, current_version_id, metadata, created_at, updated_at, archived_at`;
|
|
465
|
+
async function setCurrentTestCaseVersion(client, args) {
|
|
466
|
+
const result = await client.query({
|
|
467
|
+
text: exports.setCurrentTestCaseVersionQuery,
|
|
468
|
+
values: [args.currentVersionId, args.id, args.projectId],
|
|
469
|
+
rowMode: "array"
|
|
470
|
+
});
|
|
471
|
+
if (result.rows.length !== 1) {
|
|
472
|
+
return null;
|
|
473
|
+
}
|
|
474
|
+
const row = result.rows[0];
|
|
475
|
+
return {
|
|
476
|
+
id: row[0],
|
|
477
|
+
projectId: row[1],
|
|
478
|
+
key: row[2],
|
|
479
|
+
title: row[3],
|
|
480
|
+
description: row[4],
|
|
481
|
+
type: row[5],
|
|
482
|
+
status: row[6],
|
|
483
|
+
priority: row[7],
|
|
484
|
+
currentVersionId: row[8],
|
|
485
|
+
metadata: row[9],
|
|
486
|
+
createdAt: row[10],
|
|
487
|
+
updatedAt: row[11],
|
|
488
|
+
archivedAt: row[12]
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
exports.upsertTestCaseRequirementLinkQuery = `-- name: UpsertTestCaseRequirementLink :one
|
|
492
|
+
INSERT INTO weave_v1.test_case_requirement (
|
|
493
|
+
test_case_id,
|
|
494
|
+
requirement_id,
|
|
495
|
+
coverage_type,
|
|
496
|
+
confidence
|
|
497
|
+
)
|
|
498
|
+
VALUES (
|
|
499
|
+
$1,
|
|
500
|
+
$2,
|
|
501
|
+
$3,
|
|
502
|
+
$4
|
|
503
|
+
)
|
|
504
|
+
ON CONFLICT (test_case_id, requirement_id) DO UPDATE
|
|
505
|
+
SET coverage_type = EXCLUDED.coverage_type,
|
|
506
|
+
confidence = EXCLUDED.confidence
|
|
507
|
+
RETURNING test_case_id, requirement_id, coverage_type, confidence, created_at`;
|
|
508
|
+
async function upsertTestCaseRequirementLink(client, args) {
|
|
509
|
+
const result = await client.query({
|
|
510
|
+
text: exports.upsertTestCaseRequirementLinkQuery,
|
|
511
|
+
values: [args.testCaseId, args.requirementId, args.coverageType, args.confidence],
|
|
512
|
+
rowMode: "array"
|
|
513
|
+
});
|
|
514
|
+
if (result.rows.length !== 1) {
|
|
515
|
+
return null;
|
|
516
|
+
}
|
|
517
|
+
const row = result.rows[0];
|
|
518
|
+
return {
|
|
519
|
+
testCaseId: row[0],
|
|
520
|
+
requirementId: row[1],
|
|
521
|
+
coverageType: row[2],
|
|
522
|
+
confidence: row[3],
|
|
523
|
+
createdAt: row[4]
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
exports.deleteTestCaseRequirementLinkQuery = `-- name: DeleteTestCaseRequirementLink :exec
|
|
527
|
+
DELETE
|
|
528
|
+
FROM weave_v1.test_case_requirement cr
|
|
529
|
+
USING weave_v1.test_case c
|
|
530
|
+
WHERE cr.test_case_id = $1
|
|
531
|
+
AND cr.requirement_id = $2
|
|
532
|
+
AND cr.test_case_id = c.id
|
|
533
|
+
AND c.project_id = $3`;
|
|
534
|
+
async function deleteTestCaseRequirementLink(client, args) {
|
|
535
|
+
await client.query({
|
|
536
|
+
text: exports.deleteTestCaseRequirementLinkQuery,
|
|
537
|
+
values: [args.testCaseId, args.requirementId, args.projectId],
|
|
538
|
+
rowMode: "array"
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
exports.listTestCaseRequirementLinksQuery = `-- name: ListTestCaseRequirementLinks :many
|
|
542
|
+
SELECT cr.test_case_id, cr.requirement_id, cr.coverage_type, cr.confidence, cr.created_at
|
|
543
|
+
FROM weave_v1.test_case_requirement cr
|
|
544
|
+
INNER JOIN weave_v1.test_case c ON c.id = cr.test_case_id
|
|
545
|
+
WHERE cr.test_case_id = $1
|
|
546
|
+
AND c.project_id = $2
|
|
547
|
+
ORDER BY cr.created_at DESC`;
|
|
548
|
+
async function listTestCaseRequirementLinks(client, args) {
|
|
549
|
+
const result = await client.query({
|
|
550
|
+
text: exports.listTestCaseRequirementLinksQuery,
|
|
551
|
+
values: [args.testCaseId, args.projectId],
|
|
552
|
+
rowMode: "array"
|
|
553
|
+
});
|
|
554
|
+
return result.rows.map(row => {
|
|
555
|
+
return {
|
|
556
|
+
testCaseId: row[0],
|
|
557
|
+
requirementId: row[1],
|
|
558
|
+
coverageType: row[2],
|
|
559
|
+
confidence: row[3],
|
|
560
|
+
createdAt: row[4]
|
|
561
|
+
};
|
|
562
|
+
});
|
|
563
|
+
}
|