Skip to content

Commit ed76b46

Browse files
authored
Merge pull request #1853 from github/nora/test-factories-dbitem
Create and use more factories for DbItem creation
2 parents 1dc69a1 + 35f582b commit ed76b46

File tree

3 files changed

+210
-224
lines changed

3 files changed

+210
-224
lines changed
Lines changed: 145 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,162 @@
1+
import { faker } from "@faker-js/faker";
12
import {
23
DbItemKind,
4+
LocalDatabaseDbItem,
5+
LocalDbItem,
6+
LocalListDbItem,
7+
RemoteDbItem,
8+
RemoteOwnerDbItem,
9+
RemoteRepoDbItem,
10+
RemoteSystemDefinedListDbItem,
311
RemoteUserDefinedListDbItem,
12+
RootLocalDbItem,
413
RootRemoteDbItem,
514
} from "../../src/databases/db-item";
615

7-
export function createRootRemoteDbItem(): RootRemoteDbItem {
16+
// Root Remote Db Items
17+
export function createRootRemoteDbItem({
18+
children = [],
19+
expanded = false,
20+
}: {
21+
children?: RemoteDbItem[];
22+
expanded?: boolean;
23+
} = {}): RootRemoteDbItem {
824
return {
925
kind: DbItemKind.RootRemote,
10-
children: [],
11-
expanded: false,
26+
children,
27+
expanded,
28+
};
29+
}
30+
31+
export function createRemoteOwnerDbItem({
32+
ownerName = `owner${faker.datatype.number()}`,
33+
selected = false,
34+
}: {
35+
ownerName?: string;
36+
selected?: boolean;
37+
} = {}): RemoteOwnerDbItem {
38+
return {
39+
kind: DbItemKind.RemoteOwner,
40+
selected,
41+
ownerName,
42+
};
43+
}
44+
45+
export function createRemoteRepoDbItem({
46+
repoFullName = `owner${faker.datatype.number()}/repo${faker.datatype.number}`,
47+
selected = false,
48+
parentListName = undefined,
49+
}: {
50+
repoFullName?: string;
51+
selected?: boolean;
52+
parentListName?: string;
53+
} = {}): RemoteRepoDbItem {
54+
return {
55+
kind: DbItemKind.RemoteRepo,
56+
selected,
57+
repoFullName,
58+
parentListName,
59+
};
60+
}
61+
62+
export function createRemoteSystemDefinedListDbItem({
63+
listName = `top_${faker.datatype.number()}`,
64+
listDisplayName = `Display Name`,
65+
listDescription = `Description`,
66+
selected = false,
67+
}: {
68+
listName?: string;
69+
listDisplayName?: string;
70+
listDescription?: string;
71+
selected?: boolean;
72+
} = {}): RemoteSystemDefinedListDbItem {
73+
return {
74+
kind: DbItemKind.RemoteSystemDefinedList,
75+
selected,
76+
listName,
77+
listDisplayName,
78+
listDescription,
1279
};
1380
}
1481

1582
export function createRemoteUserDefinedListDbItem({
16-
name = "list1",
83+
expanded = false,
84+
selected = false,
85+
listName = `list${faker.datatype.number()}`,
86+
repos = [
87+
createRemoteRepoDbItem({
88+
parentListName: listName,
89+
}),
90+
],
1791
}: {
18-
name: string;
19-
}): RemoteUserDefinedListDbItem {
92+
listName?: string;
93+
expanded?: boolean;
94+
selected?: boolean;
95+
repos?: RemoteRepoDbItem[];
96+
} = {}): RemoteUserDefinedListDbItem {
2097
return {
2198
kind: DbItemKind.RemoteUserDefinedList,
22-
selected: false,
23-
expanded: false,
24-
listName: name,
25-
repos: [
26-
{
27-
kind: DbItemKind.RemoteRepo,
28-
selected: false,
29-
repoFullName: "repo1",
30-
parentListName: name,
31-
},
32-
],
99+
expanded,
100+
selected,
101+
listName,
102+
repos,
103+
};
104+
}
105+
106+
// Root Local Db Items
107+
export function createRootLocalDbItem({
108+
children = [],
109+
expanded = false,
110+
}: {
111+
children?: LocalDbItem[];
112+
expanded?: boolean;
113+
} = {}): RootLocalDbItem {
114+
return {
115+
kind: DbItemKind.RootLocal,
116+
children,
117+
expanded,
118+
};
119+
}
120+
121+
export function createLocalDatabaseDbItem({
122+
databaseName = `database${faker.datatype.number()}`,
123+
dateAdded = faker.date.past().getTime(),
124+
language = `language${faker.datatype.number()}`,
125+
storagePath = `storagePath${faker.datatype.number()}`,
126+
selected = false,
127+
}: {
128+
databaseName?: string;
129+
dateAdded?: number;
130+
language?: string;
131+
storagePath?: string;
132+
selected?: boolean;
133+
} = {}): LocalDatabaseDbItem {
134+
return {
135+
kind: DbItemKind.LocalDatabase,
136+
selected,
137+
databaseName,
138+
dateAdded,
139+
language,
140+
storagePath,
141+
};
142+
}
143+
144+
export function createLocalListDbItem({
145+
listName = `top_${faker.datatype.number()}`,
146+
selected = false,
147+
expanded = false,
148+
databases = [],
149+
}: {
150+
listName?: string;
151+
databases?: LocalDatabaseDbItem[];
152+
selected?: boolean;
153+
expanded?: boolean;
154+
} = {}): LocalListDbItem {
155+
return {
156+
kind: DbItemKind.LocalList,
157+
selected,
158+
expanded,
159+
databases,
160+
listName,
33161
};
34162
}

extensions/ql-vscode/test/pure-tests/databases/db-item-expansion.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ describe("db item expansion", () => {
2626

2727
const dbItem: RemoteUserDefinedListDbItem =
2828
createRemoteUserDefinedListDbItem({
29-
name: "list2",
29+
listName: "list2",
3030
});
3131

3232
const newExpandedItems = calculateNewExpandedState(
@@ -47,7 +47,7 @@ describe("db item expansion", () => {
4747
it("should add an expanded item to an empty list", () => {
4848
const dbItem: RemoteUserDefinedListDbItem =
4949
createRemoteUserDefinedListDbItem({
50-
name: "list2",
50+
listName: "list2",
5151
});
5252

5353
const newExpandedItems = calculateNewExpandedState([], dbItem, true);
@@ -73,7 +73,7 @@ describe("db item expansion", () => {
7373

7474
const dbItem: RemoteUserDefinedListDbItem =
7575
createRemoteUserDefinedListDbItem({
76-
name: "list1",
76+
listName: "list1",
7777
});
7878

7979
const newExpandedItems = calculateNewExpandedState(

0 commit comments

Comments
 (0)