aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/create-turbo/__tests__/isFolderEmpty.test.ts
blob: 66b2310470a4d5d69fc24ab3a7e6b1216e7b4d28 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import fs from "fs-extra";
import path from "path";
import { isFolderEmpty } from "../src/utils/isFolderEmpty";
import { setupTestFixtures } from "@turbo/test-utils";

describe("isFolderEmpty", () => {
  const { useFixture } = setupTestFixtures({
    directory: path.join(__dirname, "../"),
  });

  it("correctly identifies an empty directory", async () => {
    const { root } = useFixture({ fixture: `is-folder-empty` });
    const result = isFolderEmpty(root);
    expect(result.isEmpty).toEqual(true);
    expect(result.conflicts).toEqual([]);
  });

  it("correctly identifies a directory with non-conflicting files", async () => {
    const { root } = useFixture({ fixture: `is-folder-empty` });
    fs.writeFileSync(path.join(root, "LICENSE"), "MIT");
    const result = isFolderEmpty(root);
    expect(result.isEmpty).toEqual(true);
    expect(result.conflicts).toEqual([]);
  });

  it("correctly identifies a directory non-conflicting files (intelliJ)", async () => {
    const { root } = useFixture({ fixture: `is-folder-empty` });
    fs.writeFileSync(path.join(root, "intellij-idea-config.iml"), "{}");
    const result = isFolderEmpty(root);
    expect(result.isEmpty).toEqual(true);
    expect(result.conflicts).toEqual([]);
  });

  it("correctly identifies a directory conflicting files", async () => {
    const { root } = useFixture({ fixture: `is-folder-empty` });
    fs.writeFileSync(path.join(root, "README.md"), "my cool project");
    const result = isFolderEmpty(root);
    expect(result.isEmpty).toEqual(false);
    expect(result.conflicts).toEqual(["README.md"]);
  });
});