Skip to content

Commit 8916a90

Browse files
authored
Merge pull request #68 from reynaldichernando/deploy-test
Add deploy test
2 parents 62f40ba + 12adb9f commit 8916a90

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

tests/deploy.test.js

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import { describe, vi, expect, it, beforeEach } from "vitest";
2+
3+
vi.mock('conf', () => ({
4+
default: vi.fn(() => ({
5+
get: vi.fn(),
6+
})),
7+
}));
8+
9+
vi.mock("../src/commands/files");
10+
vi.mock("../src/commands/sites");
11+
vi.mock("../src/modules/PuterModule");
12+
13+
vi.spyOn(console, "log").mockImplementation(() => { });
14+
15+
let deploy;
16+
let syncDirectory;
17+
let createSite;
18+
let getPuter;
19+
20+
beforeEach(async () => {
21+
vi.resetModules();
22+
vi.clearAllMocks();
23+
24+
const deployModule = await import("../src/commands/deploy");
25+
deploy = deployModule.deploy;
26+
27+
const filesModule = await import("../src/commands/files");
28+
syncDirectory = vi.mocked(filesModule.syncDirectory);
29+
30+
const sitesModule = await import("../src/commands/sites");
31+
createSite = vi.mocked(sitesModule.createSite);
32+
33+
const puterModule = await import("../src/modules/PuterModule");
34+
getPuter = vi.mocked(puterModule.getPuter);
35+
});
36+
37+
describe("deploy", () => {
38+
it("should show usage when no args provided", async () => {
39+
await deploy([]);
40+
expect(console.log).toHaveBeenCalledWith(expect.stringContaining("Usage:"));
41+
});
42+
43+
it("should deploy successfully", async () => {
44+
const mockMkdir = vi.fn().mockResolvedValue({
45+
path: "~/sites/test-app/deployment"
46+
});
47+
getPuter.mockReturnValue({
48+
fs: {
49+
mkdir: mockMkdir
50+
}
51+
});
52+
syncDirectory.mockResolvedValue();
53+
createSite.mockResolvedValue({
54+
subdomain: "test-app.puter.site"
55+
});
56+
57+
await deploy(["./dist", "--subdomain=test-app"]);
58+
59+
expect(mockMkdir).toHaveBeenCalledWith("~/sites/test-app/deployment", {
60+
dedupeName: true,
61+
createMissingParents: true
62+
});
63+
expect(syncDirectory).toHaveBeenCalled();
64+
expect(createSite).toHaveBeenCalled();
65+
expect(console.log).toHaveBeenCalledWith(expect.stringContaining("Deployment successful!"));
66+
});
67+
68+
it("should show updated message when site already exists", async () => {
69+
const mockMkdir = vi.fn().mockResolvedValue({
70+
path: "~/sites/test-app/deployment"
71+
});
72+
getPuter.mockReturnValue({
73+
fs: {
74+
mkdir: mockMkdir
75+
}
76+
});
77+
syncDirectory.mockResolvedValue();
78+
createSite.mockResolvedValue(null);
79+
80+
await deploy(["./dist", "--subdomain=test-app"]);
81+
82+
expect(console.log).toHaveBeenCalledWith(expect.stringContaining("Deployment successfuly updated!"));
83+
});
84+
});

0 commit comments

Comments
 (0)