Skip to content

Commit cc9be6c

Browse files
fix graphql-server feedback
1 parent dfbf42e commit cc9be6c

File tree

12 files changed

+115
-49
lines changed

12 files changed

+115
-49
lines changed

graphql-server/schema.gql

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,9 @@ type TagList {
340340
}
341341

342342
type Test {
343+
_id: ID!
344+
databaseName: String!
345+
refName: String!
343346
testName: String!
344347
testGroup: String!
345348
testQuery: String!
@@ -353,6 +356,9 @@ type TestList {
353356
}
354357

355358
type TestResult {
359+
_id: ID!
360+
databaseName: String!
361+
refName: String!
356362
testName: String!
357363
testGroupName: String
358364
query: String!
@@ -404,7 +410,7 @@ type Query {
404410
tags(databaseName: String!): TagList!
405411
tag(databaseName: String!, tagName: String!): Tag
406412
tests(databaseName: String!, refName: String!): TestList!
407-
runTests(refName: String!, databaseName: String!, identifiers: TestIdentifierArgs): TestResultList!
413+
runTests(refName: String!, databaseName: String!, testIdentifier: TestIdentifierArgs): TestResultList!
408414
}
409415

410416
enum SortBranchesBy {
@@ -433,7 +439,8 @@ enum DiffRowType {
433439
}
434440

435441
input TestIdentifierArgs {
436-
values: [String!]!
442+
testName: String
443+
groupName: String
437444
}
438445

439446
type Mutation {

graphql-server/src/queryFactory/dolt/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -595,9 +595,11 @@ export class DoltQueryFactory
595595
}
596596

597597
async runTests(args: t.RunTestsArgs): t.PR {
598+
const withTestIdentifierArg = args.testIdentifier && (args.testIdentifier.testName !== undefined || args.testIdentifier.groupName !== undefined);
599+
598600
return this.query(
599-
qh.doltTestRun(args.identifiers?.values.length ?? 0),
600-
args.identifiers?.values,
601+
qh.doltTestRun(withTestIdentifierArg),
602+
withTestIdentifierArg ? [args.testIdentifier?.testName ?? args.testIdentifier?.groupName] : undefined,
601603
args.databaseName,
602604
args.refName,
603605
);

graphql-server/src/queryFactory/dolt/queries.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { SortBranchesBy } from "../../branches/branch.enum";
2-
import { RawRows } from "../types";
2+
import { RawRows, TestIdentifierArgs } from "../types";
33

44
// TABLE
55

@@ -182,7 +182,5 @@ export const callCheckoutTable = `CALL DOLT_CHECKOUT(?)`;
182182

183183
export const callDoltClone = `CALL DOLT_CLONE(?,?)`;
184184

185-
export const doltTestRun = (argCount: number) => {
186-
const placeholders = Array.from({ length: argCount }, () => `?`).join(", ");
187-
return `SELECT * FROM DOLT_TEST_RUN(${placeholders})`;
188-
};
185+
export const doltTestRun = (withArg?: boolean): string =>
186+
`SELECT * FROM DOLT_TEST_RUN(${withArg ? "?" : ""})`;

graphql-server/src/queryFactory/doltgres/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -569,12 +569,16 @@ export class DoltgresQueryFactory
569569
}
570570

571571
async runTests(args: t.RunTestsArgs): t.PR {
572+
const withTestIdentifierArg = args.testIdentifier && (args.testIdentifier.testName !== undefined || args.testIdentifier.groupName !== undefined);
573+
572574
return this.query(
573-
qh.doltTestRun(args.identifiers?.values.length ?? 0),
574-
args.identifiers?.values,
575+
qh.doltTestRun(withTestIdentifierArg),
576+
withTestIdentifierArg ? [args.testIdentifier?.testName ?? args.testIdentifier?.groupName] : undefined,
575577
args.databaseName,
576578
args.refName,
577579
);
580+
581+
578582
}
579583

580584
async saveTests(args: t.SaveTestsArgs): Promise<InsertResult> {

graphql-server/src/queryFactory/doltgres/queries.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,10 +193,5 @@ export const callFetchRemote = `SELECT DOLT_FETCH($1::text)`;
193193

194194
export const callCreateBranchFromRemote = `CALL DOLT_BRANCH($1::text, $2::text)`;
195195

196-
export const doltTestRun = (argCount: number) => {
197-
const placeholders = Array.from(
198-
{ length: argCount },
199-
(_, i) => `$${i + 1}::text`,
200-
).join(", ");
201-
return `SELECT * FROM DOLT_TEST_RUN(${placeholders})`;
202-
};
196+
export const doltTestRun = (withArg?: boolean): string =>
197+
`SELECT * FROM DOLT_TEST_RUN(${withArg ? "$1::text" : ""})`;

graphql-server/src/queryFactory/types.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,10 @@ export type SaveTestsArgs = RefArgs & {
8686
};
8787

8888
export type TestIdentifierArgs = {
89-
values: string[];
89+
testName?: string;
90+
groupName?: string;
9091
};
9192

9293
export type RunTestsArgs = RefArgs & {
93-
identifiers?: TestIdentifierArgs;
94+
testIdentifier?: TestIdentifierArgs;
9495
};

graphql-server/src/tests/test.model.ts

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
1-
import { Field, ObjectType } from "@nestjs/graphql";
1+
import { Field, ID, ObjectType } from "@nestjs/graphql";
22
import { RawRow } from "../queryFactory/types";
33
import { ObjectLiteral } from "typeorm";
44

55
@ObjectType()
66
export class Test {
7+
@Field(_type => ID)
8+
_id: string;
9+
10+
@Field()
11+
databaseName: string;
12+
13+
@Field()
14+
refName: string;
15+
716
@Field()
817
testName: string;
918

@@ -31,11 +40,20 @@ export class TestList {
3140

3241
@ObjectType()
3342
export class TestResult {
43+
@Field(_type => ID)
44+
_id: string;
45+
46+
@Field()
47+
databaseName: string;
48+
49+
@Field()
50+
refName: string;
51+
3452
@Field()
3553
testName: string;
3654

3755
@Field({ nullable: true })
38-
testGroupName: string;
56+
testGroupName?: string;
3957

4058
@Field()
4159
query: string;
@@ -53,8 +71,11 @@ export class TestResultList {
5371
list: TestResult[];
5472
}
5573

56-
export function fromDoltTestRowRes(test: RawRow | ObjectLiteral): Test {
74+
export function fromDoltTestRowRes(databaseName: string, refName: string, test: RawRow | ObjectLiteral): Test {
5775
return {
76+
_id: `databases/${databaseName}/refs/${refName}/tests/${test.test_name}`,
77+
databaseName: databaseName,
78+
refName: refName,
5879
testName: test.test_name,
5980
testGroup: test.test_group,
6081
testQuery: test.test_query,
@@ -64,8 +85,11 @@ export function fromDoltTestRowRes(test: RawRow | ObjectLiteral): Test {
6485
};
6586
}
6687

67-
export function fromDoltTestResultRowRes(testResult: RawRow): TestResult {
88+
export function fromDoltTestResultRowRes(databaseName: string, refName: string, testResult: RawRow): TestResult {
6889
return {
90+
_id: `databases/${databaseName}/refs/${refName}/testResults/${testResult.test_name}`,
91+
databaseName: databaseName,
92+
refName: refName,
6993
testName: testResult.test_name,
7094
testGroupName: testResult.test_group_name,
7195
query: testResult.query,

graphql-server/src/tests/test.resolver.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import {
1919

2020
@InputType()
2121
class TestArgs {
22+
23+
@Field()
2224
@Field()
2325
testName: string;
2426

@@ -52,14 +54,17 @@ class SaveTestsArgs extends RefArgs {
5254

5355
@InputType()
5456
class TestIdentifierArgs {
55-
@Field(_type => [String])
56-
values: string[];
57+
@Field({ nullable: true })
58+
testName?: string;
59+
60+
@Field({ nullable: true })
61+
groupName?: string;
5762
}
5863

5964
@ArgsType()
6065
class RunTestsArgs extends RefArgs {
6166
@Field({ nullable: true })
62-
identifiers?: TestIdentifierArgs;
67+
testIdentifier?: TestIdentifierArgs;
6368
}
6469

6570
@Resolver(_of => Test)
@@ -71,16 +76,16 @@ export class TestResolver {
7176
const conn = this.conn.connection();
7277
const res = await conn.getTests(args);
7378
return {
74-
list: res.map(t => fromDoltTestRowRes(t)),
79+
list: res.map(t => fromDoltTestRowRes(args.databaseName, args.refName, t)),
7580
};
7681
}
7782

7883
@Query(_returns => TestResultList)
79-
async runTests(@Args() args: RunTestsArgs) {
84+
async runTests(@Args() args: RunTestsArgs): Promise<TestResultList> {
8085
const conn = this.conn.connection();
8186
const res = await conn.runTests(args);
8287
return {
83-
list: res.map(t => fromDoltTestResultRowRes(t)),
88+
list: res.map(t => fromDoltTestResultRowRes(args.databaseName, args.refName, t)),
8489
};
8590
}
8691

@@ -89,7 +94,7 @@ export class TestResolver {
8994
const conn = this.conn.connection();
9095
const res = await conn.saveTests(args);
9196
return {
92-
list: res.generatedMaps.map(t => fromDoltTestRowRes(t)),
97+
list: res.generatedMaps.map(t => fromDoltTestRowRes(args.databaseName, args.refName, t)),
9398
};
9499
}
95100
}

web/renderer/components/pageComponents/DatabasePage/ForTests/TestList/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export default function TestList({ params }: Props) {
109109
testCount={groupTests.length}
110110
groupResult={getGroupResult(groupName)}
111111
onRunGroup={async () => await handleRunGroup(groupName)}
112-
onDeleteGroup={async () => handleDeleteGroup(groupName)}
112+
onDeleteGroup={() => handleDeleteGroup(groupName)}
113113
onRenameGroup={handleRenameGroup}
114114
onCreateTest={group => handleCreateTest(group)}
115115
/>

web/renderer/components/pageComponents/DatabasePage/ForTests/TestList/useTestList.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function useTestList(params: RefParams) {
3636
variables: {
3737
databaseName: params.databaseName,
3838
refName: params.refName,
39-
tests: { list: tests },
39+
tests: { list: tests.map(({ _id, databaseName: _databaseName, refName: _refName, ...test }) => test) },
4040
},
4141
});
4242

@@ -165,9 +165,9 @@ export function useTestList(params: RefParams) {
165165
variables: {
166166
databaseName: params.databaseName,
167167
refName: params.refName,
168-
identifiers: {
169-
values: [testName],
170-
},
168+
testIdentifier: {
169+
testName,
170+
}
171171
},
172172
});
173173

@@ -192,9 +192,9 @@ export function useTestList(params: RefParams) {
192192
variables: {
193193
databaseName: params.databaseName,
194194
refName: params.refName,
195-
identifiers: {
196-
values: [groupName],
197-
},
195+
testIdentifier: {
196+
groupName,
197+
}
198198
},
199199
});
200200
result.data?.runTests.list.map(test =>
@@ -302,6 +302,9 @@ export function useTestList(params: RefParams) {
302302
assertionComparator: "==",
303303
assertionValue: "",
304304
testGroup: groupName ?? "",
305+
_id: "",
306+
databaseName: params.databaseName,
307+
refName: params.refName,
305308
};
306309

307310
setTests([...tests, newTest]);

0 commit comments

Comments
 (0)