diff --git a/extensions/ql-vscode/test/pure-tests/databases/db-item-selection.test.ts b/extensions/ql-vscode/test/pure-tests/databases/db-item-selection.test.ts index 241a97695..da47a1254 100644 --- a/extensions/ql-vscode/test/pure-tests/databases/db-item-selection.test.ts +++ b/extensions/ql-vscode/test/pure-tests/databases/db-item-selection.test.ts @@ -1,90 +1,29 @@ import { DbItem, DbItemKind } from "../../../src/databases/db-item"; import { getSelectedDbItem } from "../../../src/databases/db-item-selection"; +import { + createLocalDatabaseDbItem, + createLocalListDbItem, + createRemoteOwnerDbItem, + createRemoteRepoDbItem, + createRemoteSystemDefinedListDbItem, + createRemoteUserDefinedListDbItem, + createRootLocalDbItem, + createRootRemoteDbItem, +} from "../../factories/db-item-factories"; describe("db item selection", () => { it("should return undefined if no item is selected", () => { const dbItems: DbItem[] = [ - { - kind: DbItemKind.RootRemote, - expanded: false, + createRootRemoteDbItem({ children: [ - { - kind: DbItemKind.RemoteSystemDefinedList, - listName: "top_10", - listDisplayName: "Top 10 repositories", - listDescription: "Top 10 repositories of a language", - selected: false, - }, - { - kind: DbItemKind.RemoteSystemDefinedList, - listName: "top_100", - listDisplayName: "Top 100 repositories", - listDescription: "Top 100 repositories of a language", - selected: false, - }, - { - kind: DbItemKind.RemoteOwner, - ownerName: "github", - selected: false, - }, - { - kind: DbItemKind.RemoteUserDefinedList, - expanded: false, - listName: "my list", - repos: [ - { - kind: DbItemKind.RemoteRepo, - repoFullName: "owner1/repo2", - selected: false, - }, - { - kind: DbItemKind.RemoteRepo, - repoFullName: "owner1/repo3", - selected: false, - }, - ], - selected: false, - }, + createRemoteSystemDefinedListDbItem({}), + createRemoteOwnerDbItem({}), + createRemoteUserDefinedListDbItem({}), ], - }, - { - kind: DbItemKind.RootLocal, - expanded: false, - children: [ - { - kind: DbItemKind.LocalList, - expanded: false, - listName: "list-1", - databases: [ - { - kind: DbItemKind.LocalDatabase, - databaseName: "db1", - dateAdded: 1234, - language: "javascript", - storagePath: "/foo/bar", - selected: false, - }, - { - kind: DbItemKind.LocalDatabase, - databaseName: "db2", - dateAdded: 1234, - language: "javascript", - storagePath: "/foo/bar", - selected: false, - }, - ], - selected: false, - }, - { - kind: DbItemKind.LocalDatabase, - databaseName: "db3", - dateAdded: 1234, - language: "javascript", - storagePath: "/foo/bar", - selected: false, - }, - ], - }, + }), + createRootLocalDbItem({ + children: [createLocalListDbItem({}), createLocalDatabaseDbItem({})], + }), ]; expect(getSelectedDbItem(dbItems)).toBeUndefined(); @@ -92,44 +31,24 @@ describe("db item selection", () => { it("should return correct local database item from DbItem list", () => { const dbItems: DbItem[] = [ - { - kind: DbItemKind.RootLocal, - expanded: false, + createRootLocalDbItem({ children: [ - { - kind: DbItemKind.LocalList, - expanded: false, - listName: "list-1", - databases: [ - { - kind: DbItemKind.LocalDatabase, - databaseName: "db1", - dateAdded: 1234, - language: "javascript", - storagePath: "/foo/bar", - selected: false, - }, - { - kind: DbItemKind.LocalDatabase, - databaseName: "db2", - dateAdded: 1234, - language: "javascript", - storagePath: "/foo/bar", - selected: true, - }, - ], - selected: false, - }, - { - kind: DbItemKind.LocalDatabase, - databaseName: "db3", + createLocalDatabaseDbItem({ + databaseName: "db2", dateAdded: 1234, language: "javascript", storagePath: "/foo/bar", - selected: false, - }, + selected: true, + }), + createLocalListDbItem({ + databases: [ + createLocalDatabaseDbItem({}), + createLocalDatabaseDbItem({}), + ], + }), ], - }, + expanded: false, + }), ]; expect(getSelectedDbItem(dbItems)).toEqual({ @@ -144,42 +63,20 @@ describe("db item selection", () => { it("should return correct remote database list item from DbItem list", () => { const dbItems: DbItem[] = [ - { - kind: DbItemKind.RootRemote, - expanded: false, + createRootRemoteDbItem({ children: [ - { - kind: DbItemKind.RemoteSystemDefinedList, - listName: "top_10", - listDisplayName: "Top 10 repositories", - listDescription: "Top 10 repositories of a language", - selected: false, - }, - { - kind: DbItemKind.RemoteOwner, - ownerName: "github", - selected: false, - }, - { - kind: DbItemKind.RemoteUserDefinedList, - expanded: false, + createRemoteSystemDefinedListDbItem({}), + createRemoteOwnerDbItem({}), + createRemoteUserDefinedListDbItem({ listName: "my list", - repos: [ - { - kind: DbItemKind.RemoteRepo, - repoFullName: "owner1/repo2", - selected: false, - }, - { - kind: DbItemKind.RemoteRepo, - repoFullName: "owner1/repo3", - selected: false, - }, - ], selected: true, - }, + repos: [ + createRemoteRepoDbItem({ repoFullName: "owner1/repo2" }), + createRemoteRepoDbItem({ repoFullName: "owner1/repo3" }), + ], + }), ], - }, + }), ]; expect(getSelectedDbItem(dbItems)).toEqual({ @@ -204,49 +101,19 @@ describe("db item selection", () => { it("should handle arbitrary list of db items", () => { const dbItems: DbItem[] = [ - { - kind: DbItemKind.RootRemote, - expanded: false, + createRootRemoteDbItem({ children: [ - { - kind: DbItemKind.RemoteSystemDefinedList, - listName: "top_10", - listDisplayName: "Top 10 repositories", - listDescription: "Top 10 repositories of a language", - selected: false, - }, - { - kind: DbItemKind.RemoteOwner, - ownerName: "github", - selected: false, - }, - { - kind: DbItemKind.RemoteUserDefinedList, - expanded: false, - listName: "my list", - repos: [ - { - kind: DbItemKind.RemoteRepo, - repoFullName: "owner1/repo2", - selected: false, - }, - { - kind: DbItemKind.RemoteRepo, - repoFullName: "owner1/repo3", - selected: false, - }, - ], - selected: false, - }, + createRemoteSystemDefinedListDbItem({}), + createRemoteOwnerDbItem({}), + createRemoteUserDefinedListDbItem({}), ], - }, - { - kind: DbItemKind.RemoteSystemDefinedList, + }), + createRemoteSystemDefinedListDbItem({ listName: "top_10", listDisplayName: "Top 10 repositories", listDescription: "Top 10 repositories of a language", selected: true, - }, + }), ]; expect(getSelectedDbItem(dbItems)).toEqual({ @@ -260,33 +127,24 @@ describe("db item selection", () => { it("should handle empty db item lists", () => { const dbItems: DbItem[] = [ - { - kind: DbItemKind.RootRemote, - expanded: false, + createRootRemoteDbItem({ children: [ - { - kind: DbItemKind.RemoteSystemDefinedList, - listName: "top_10", - listDisplayName: "Top 10 repositories", - listDescription: "Top 10 repositories of a language", - selected: false, - }, - { - kind: DbItemKind.RemoteOwner, - ownerName: "github", - selected: false, - }, - { - kind: DbItemKind.RemoteUserDefinedList, - expanded: false, - listName: "my list", + createRemoteSystemDefinedListDbItem({}), + createRemoteOwnerDbItem({}), + createRemoteUserDefinedListDbItem({ repos: [], - selected: false, - }, + selected: true, + listName: "list84", + }), ], - }, + }), ]; - - expect(getSelectedDbItem(dbItems)).toBeUndefined(); + expect(getSelectedDbItem(dbItems)).toEqual({ + expanded: false, + kind: DbItemKind.RemoteUserDefinedList, + listName: "list84", + repos: [], + selected: true, + }); }); });