From b2152da8f4bea1a655f7c9c7c07b24c041173f0a Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 6 Aug 2021 22:23:46 +0200 Subject: Added a tree entry test --- test/unit/tree_entry.unit.test.ts | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 test/unit/tree_entry.unit.test.ts diff --git a/test/unit/tree_entry.unit.test.ts b/test/unit/tree_entry.unit.test.ts new file mode 100644 index 0000000..570ba0f --- /dev/null +++ b/test/unit/tree_entry.unit.test.ts @@ -0,0 +1,83 @@ +import { BaseTreeEntry, BlobTreeEntry, TreeEntry } from "server/src/git/tree_entry"; +import { Repository } from "server/src/git/repository"; +import { EnvironmentVariables } from "../util"; +import { Commit } from "server/src/git/commit"; +import { Tree } from "server/src/git/tree"; +import { Blob } from "../../packages/server/src/git/blob"; + +const env = process.env as EnvironmentVariables; + +describe("Tree entry", () => { + describe("Base tree entry", () => { + describe("Class methods", () => { + let tree_entry: BaseTreeEntry; + + beforeAll(async() => { + const repository = await Repository.open(env.BASE_DIR, env.AVAIL_REPO); + const tree = await repository.tree(); + tree_entry = tree.entries()[0]; + }); + + it("Should get the latest commit", async() => { + expect.assertions(2); + + const latest_commit = await tree_entry.latestCommit(); + + expect(latest_commit).toBeDefined(); + expect(latest_commit).toBeInstanceOf(Commit); + }); + }); + + }); + + describe("Tree entry", () => { + describe("Class methods", () => { + let tree_entry: BaseTreeEntry; + + beforeAll(async() => { + const repository = await Repository.open(env.BASE_DIR, env.AVAIL_REPO); + const tree = await repository.tree(); + const entry = tree.entries().find(entry => entry.path === "test"); + if(!entry) { + throw(new Error("Couldn't find the test directory!")); + } + + tree_entry = entry; + }); + + it("Should get the tree", async() => { + expect.assertions(2); + + const entry = tree_entry as TreeEntry; + + const tree = await entry.tree(); + + expect(tree).toBeDefined(); + expect(tree).toBeInstanceOf(Tree); + }); + }); + }); + + describe("Blob tree entry", () => { + describe("Class methods", () => { + let tree_entry: BaseTreeEntry; + + beforeAll(async() => { + const repository = await Repository.open(env.BASE_DIR, env.AVAIL_REPO); + const tree = await repository.tree(); + tree_entry = tree.entries()[0]; + }); + + it("Should get the blob", async() => { + expect.assertions(2); + + const entry = tree_entry as BlobTreeEntry; + + const blob = await entry.blob(); + + expect(blob).toBeDefined(); + expect(blob).toBeInstanceOf(Blob); + }); + }); + }); +}); -- cgit v1.2.3-18-g5258