From 7e645f4411bc0b04b909e4534a3c4baaca456629 Mon Sep 17 00:00:00 2001 From: HampusM Date: Tue, 6 Jul 2021 21:30:23 +0200 Subject: Added tests --- test/unit/commit.unit.test.ts | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/unit/commit.unit.test.ts (limited to 'test/unit/commit.unit.test.ts') diff --git a/test/unit/commit.unit.test.ts b/test/unit/commit.unit.test.ts new file mode 100644 index 0000000..c4bb6f8 --- /dev/null +++ b/test/unit/commit.unit.test.ts @@ -0,0 +1,74 @@ + +import { Repository } from "server/src/git/repository"; +import { Commit } from "server/src/git/commit"; + +describe("Commit", () => { + const base_dir = "/home/hampus/Projects"; + + let repository: Repository; + + beforeAll(async () => { + repository = await Repository.open(base_dir, "githermit"); + }); + + test("Lookup a existing commit by id", async () => { + const id = "d546492f4fd400ae61a6abbe1905fdbc67451c4d"; + + const lookupCommit = jest.fn(() => Commit.lookup(repository, id)); + + const commit = await lookupCommit(); + + expect(lookupCommit).toReturn(); + expect(commit.id).toBe(id); + }); + + test("Lookup a nonexistant commit by id throws", async () => { + const id = "a546392f4fd440ae61a6afec1d25fdbc67251e2b"; + + expect(Commit.lookup(repository, id)).rejects.toThrow(); + }); + + test("Lookup if an existing commit exists by id", async () => { + const id = "d546492f4fd400ae61a6abbe1905fdbc67451c4d"; + + expect(Commit.lookupExists(repository, id)).resolves.toBeTruthy(); + }); + + test("Lookup if an nonexistant commit exists by id", async () => { + const id = "a546392f4fd440ae61a6afec1d25fdbc67251e2b"; + + expect(Commit.lookupExists(repository, id)).resolves.toBeFalsy(); + }); + + describe("Functions", () => { + let commit: Commit; + + beforeAll(async () => { + commit = await repository.latestCommit(); + }); + + test("Get stats", async () => { + const getStats = jest.fn(() => commit.stats()); + + await getStats(); + + expect(getStats).toReturn(); + }); + + test("Get diff", async () => { + const getDiff = jest.fn(() => commit.diff()); + + await getDiff(); + + expect(getDiff).toReturn(); + }); + + test("Get tree", async () => { + const getTree = jest.fn(() => commit.tree()); + + await getTree(); + + expect(getTree).toReturn(); + }); + }); +}); \ No newline at end of file -- cgit v1.2.3-18-g5258