@panoptic-it-solutions/zoho-projects-client 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/fixtures/clients.d.ts +4 -0
- package/dist/__tests__/fixtures/clients.d.ts.map +1 -0
- package/dist/__tests__/fixtures/clients.js +38 -0
- package/dist/__tests__/fixtures/clients.js.map +1 -0
- package/dist/__tests__/fixtures/contacts.d.ts +4 -0
- package/dist/__tests__/fixtures/contacts.d.ts.map +1 -0
- package/dist/__tests__/fixtures/contacts.js +40 -0
- package/dist/__tests__/fixtures/contacts.js.map +1 -0
- package/dist/__tests__/fixtures/dashboards.d.ts +4 -0
- package/dist/__tests__/fixtures/dashboards.d.ts.map +1 -0
- package/dist/__tests__/fixtures/dashboards.js +42 -0
- package/dist/__tests__/fixtures/dashboards.js.map +1 -0
- package/dist/__tests__/fixtures/followers.d.ts +4 -0
- package/dist/__tests__/fixtures/followers.d.ts.map +1 -0
- package/dist/__tests__/fixtures/followers.js +33 -0
- package/dist/__tests__/fixtures/followers.js.map +1 -0
- package/dist/__tests__/fixtures/index.d.ts +12 -0
- package/dist/__tests__/fixtures/index.d.ts.map +1 -1
- package/dist/__tests__/fixtures/index.js +12 -0
- package/dist/__tests__/fixtures/index.js.map +1 -1
- package/dist/__tests__/fixtures/leaves.d.ts +4 -0
- package/dist/__tests__/fixtures/leaves.d.ts.map +1 -0
- package/dist/__tests__/fixtures/leaves.js +45 -0
- package/dist/__tests__/fixtures/leaves.js.map +1 -0
- package/dist/__tests__/fixtures/profiles.d.ts +4 -0
- package/dist/__tests__/fixtures/profiles.d.ts.map +1 -0
- package/dist/__tests__/fixtures/profiles.js +35 -0
- package/dist/__tests__/fixtures/profiles.js.map +1 -0
- package/dist/__tests__/fixtures/reports.d.ts +5 -0
- package/dist/__tests__/fixtures/reports.d.ts.map +1 -0
- package/dist/__tests__/fixtures/reports.js +70 -0
- package/dist/__tests__/fixtures/reports.js.map +1 -0
- package/dist/__tests__/fixtures/roles.d.ts +4 -0
- package/dist/__tests__/fixtures/roles.d.ts.map +1 -0
- package/dist/__tests__/fixtures/roles.js +38 -0
- package/dist/__tests__/fixtures/roles.js.map +1 -0
- package/dist/__tests__/fixtures/search.d.ts +5 -0
- package/dist/__tests__/fixtures/search.d.ts.map +1 -0
- package/dist/__tests__/fixtures/search.js +61 -0
- package/dist/__tests__/fixtures/search.js.map +1 -0
- package/dist/__tests__/fixtures/teams.d.ts +5 -0
- package/dist/__tests__/fixtures/teams.d.ts.map +1 -0
- package/dist/__tests__/fixtures/teams.js +40 -0
- package/dist/__tests__/fixtures/teams.js.map +1 -0
- package/dist/__tests__/fixtures/trash.d.ts +5 -0
- package/dist/__tests__/fixtures/trash.d.ts.map +1 -0
- package/dist/__tests__/fixtures/trash.js +62 -0
- package/dist/__tests__/fixtures/trash.js.map +1 -0
- package/dist/__tests__/fixtures/widgets.d.ts +4 -0
- package/dist/__tests__/fixtures/widgets.d.ts.map +1 -0
- package/dist/__tests__/fixtures/widgets.js +51 -0
- package/dist/__tests__/fixtures/widgets.js.map +1 -0
- package/dist/__tests__/unit/client/clients.test.d.ts +2 -0
- package/dist/__tests__/unit/client/clients.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/clients.test.js +87 -0
- package/dist/__tests__/unit/client/clients.test.js.map +1 -0
- package/dist/__tests__/unit/client/contacts.test.d.ts +2 -0
- package/dist/__tests__/unit/client/contacts.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/contacts.test.js +89 -0
- package/dist/__tests__/unit/client/contacts.test.js.map +1 -0
- package/dist/__tests__/unit/client/dashboards.test.d.ts +2 -0
- package/dist/__tests__/unit/client/dashboards.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/dashboards.test.js +87 -0
- package/dist/__tests__/unit/client/dashboards.test.js.map +1 -0
- package/dist/__tests__/unit/client/followers.test.d.ts +2 -0
- package/dist/__tests__/unit/client/followers.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/followers.test.js +109 -0
- package/dist/__tests__/unit/client/followers.test.js.map +1 -0
- package/dist/__tests__/unit/client/leaves.test.d.ts +2 -0
- package/dist/__tests__/unit/client/leaves.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/leaves.test.js +91 -0
- package/dist/__tests__/unit/client/leaves.test.js.map +1 -0
- package/dist/__tests__/unit/client/profiles.test.d.ts +2 -0
- package/dist/__tests__/unit/client/profiles.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/profiles.test.js +86 -0
- package/dist/__tests__/unit/client/profiles.test.js.map +1 -0
- package/dist/__tests__/unit/client/reports.test.d.ts +2 -0
- package/dist/__tests__/unit/client/reports.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/reports.test.js +86 -0
- package/dist/__tests__/unit/client/reports.test.js.map +1 -0
- package/dist/__tests__/unit/client/roles.test.d.ts +2 -0
- package/dist/__tests__/unit/client/roles.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/roles.test.js +86 -0
- package/dist/__tests__/unit/client/roles.test.js.map +1 -0
- package/dist/__tests__/unit/client/search.test.d.ts +2 -0
- package/dist/__tests__/unit/client/search.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/search.test.js +106 -0
- package/dist/__tests__/unit/client/search.test.js.map +1 -0
- package/dist/__tests__/unit/client/teams.test.d.ts +2 -0
- package/dist/__tests__/unit/client/teams.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/teams.test.js +115 -0
- package/dist/__tests__/unit/client/teams.test.js.map +1 -0
- package/dist/__tests__/unit/client/timelogs.test.d.ts +2 -0
- package/dist/__tests__/unit/client/timelogs.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/timelogs.test.js +112 -0
- package/dist/__tests__/unit/client/timelogs.test.js.map +1 -0
- package/dist/__tests__/unit/client/trash.test.d.ts +2 -0
- package/dist/__tests__/unit/client/trash.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/trash.test.js +103 -0
- package/dist/__tests__/unit/client/trash.test.js.map +1 -0
- package/dist/__tests__/unit/client/widgets.test.d.ts +2 -0
- package/dist/__tests__/unit/client/widgets.test.d.ts.map +1 -0
- package/dist/__tests__/unit/client/widgets.test.js +91 -0
- package/dist/__tests__/unit/client/widgets.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for leaves API
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
5
|
+
import { http, HttpResponse } from "msw";
|
|
6
|
+
import { server } from "../../mocks/server.js";
|
|
7
|
+
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
|
+
import { mockLeave, mockLeaves } from "../../fixtures/leaves.js";
|
|
9
|
+
const TEST_PORTAL_ID = "12345";
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/restapi/portal/${TEST_PORTAL_ID}`;
|
|
11
|
+
describe("leaves", () => {
|
|
12
|
+
let client;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
client = createZohoProjectsClient({
|
|
15
|
+
clientId: "test-client-id",
|
|
16
|
+
clientSecret: "test-client-secret",
|
|
17
|
+
refreshToken: "test-refresh-token",
|
|
18
|
+
portalId: TEST_PORTAL_ID,
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe("list", () => {
|
|
22
|
+
it("should list all leaves", async () => {
|
|
23
|
+
server.use(http.get(`${BASE_URL}/leaves/`, () => {
|
|
24
|
+
return HttpResponse.json({
|
|
25
|
+
leaves: mockLeaves,
|
|
26
|
+
page_info: { page: 1, per_page: 100, has_more_page: false },
|
|
27
|
+
});
|
|
28
|
+
}));
|
|
29
|
+
const result = await client.leaves.list();
|
|
30
|
+
expect(result.data).toHaveLength(2);
|
|
31
|
+
expect(result.data[0]).toMatchObject({
|
|
32
|
+
id: expect.any(String),
|
|
33
|
+
user_id: expect.any(String),
|
|
34
|
+
start_date: expect.any(String),
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe("get", () => {
|
|
39
|
+
it("should get a single leave by ID", async () => {
|
|
40
|
+
server.use(http.get(`${BASE_URL}/leaves/leave_001/`, () => {
|
|
41
|
+
return HttpResponse.json({ leaves: [mockLeave] });
|
|
42
|
+
}));
|
|
43
|
+
const result = await client.leaves.get("leave_001");
|
|
44
|
+
expect(result.id).toBe("leave_001");
|
|
45
|
+
expect(result.status).toBe("approved");
|
|
46
|
+
expect(result.reason).toBe("Family vacation");
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe("create", () => {
|
|
50
|
+
it("should create a leave request", async () => {
|
|
51
|
+
let capturedBody;
|
|
52
|
+
server.use(http.post(`${BASE_URL}/leaves/`, async ({ request }) => {
|
|
53
|
+
capturedBody = await request.json();
|
|
54
|
+
return HttpResponse.json({ leaves: [mockLeave] });
|
|
55
|
+
}));
|
|
56
|
+
const result = await client.leaves.create({
|
|
57
|
+
user_id: "user_001",
|
|
58
|
+
start_date: "01-15-2024",
|
|
59
|
+
end_date: "01-22-2024",
|
|
60
|
+
reason: "Family vacation",
|
|
61
|
+
});
|
|
62
|
+
expect(capturedBody).toMatchObject({
|
|
63
|
+
user_id: "user_001",
|
|
64
|
+
start_date: "01-15-2024",
|
|
65
|
+
end_date: "01-22-2024",
|
|
66
|
+
});
|
|
67
|
+
expect(result.user_id).toBe("user_001");
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe("update", () => {
|
|
71
|
+
it("should update a leave request", async () => {
|
|
72
|
+
const updatedLeave = { ...mockLeave, status: "rejected" };
|
|
73
|
+
server.use(http.put(`${BASE_URL}/leaves/leave_001/`, () => {
|
|
74
|
+
return HttpResponse.json({ leaves: [updatedLeave] });
|
|
75
|
+
}));
|
|
76
|
+
const result = await client.leaves.update("leave_001", {
|
|
77
|
+
status: "rejected",
|
|
78
|
+
});
|
|
79
|
+
expect(result.status).toBe("rejected");
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe("delete", () => {
|
|
83
|
+
it("should delete a leave request", async () => {
|
|
84
|
+
server.use(http.delete(`${BASE_URL}/leaves/leave_001/`, () => {
|
|
85
|
+
return new HttpResponse(null, { status: 204 });
|
|
86
|
+
}));
|
|
87
|
+
await expect(client.leaves.delete("leave_001")).resolves.toBeUndefined();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=leaves.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaves.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/leaves.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/profiles.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for profiles API
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
5
|
+
import { http, HttpResponse } from "msw";
|
|
6
|
+
import { server } from "../../mocks/server.js";
|
|
7
|
+
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
|
+
import { mockProfile, mockProfiles } from "../../fixtures/profiles.js";
|
|
9
|
+
const TEST_PORTAL_ID = "12345";
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/restapi/portal/${TEST_PORTAL_ID}`;
|
|
11
|
+
describe("profiles", () => {
|
|
12
|
+
let client;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
client = createZohoProjectsClient({
|
|
15
|
+
clientId: "test-client-id",
|
|
16
|
+
clientSecret: "test-client-secret",
|
|
17
|
+
refreshToken: "test-refresh-token",
|
|
18
|
+
portalId: TEST_PORTAL_ID,
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe("list", () => {
|
|
22
|
+
it("should list all profiles", async () => {
|
|
23
|
+
server.use(http.get(`${BASE_URL}/profiles/`, () => {
|
|
24
|
+
return HttpResponse.json({
|
|
25
|
+
profiles: mockProfiles,
|
|
26
|
+
page_info: { page: 1, per_page: 100, has_more_page: false },
|
|
27
|
+
});
|
|
28
|
+
}));
|
|
29
|
+
const result = await client.profiles.list();
|
|
30
|
+
expect(result.data).toHaveLength(3);
|
|
31
|
+
expect(result.data[0]).toMatchObject({
|
|
32
|
+
id: expect.any(String),
|
|
33
|
+
name: expect.any(String),
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe("get", () => {
|
|
38
|
+
it("should get a single profile by ID", async () => {
|
|
39
|
+
server.use(http.get(`${BASE_URL}/profiles/profile_001/`, () => {
|
|
40
|
+
return HttpResponse.json({ profiles: [mockProfile] });
|
|
41
|
+
}));
|
|
42
|
+
const result = await client.profiles.get("profile_001");
|
|
43
|
+
expect(result.id).toBe("profile_001");
|
|
44
|
+
expect(result.name).toBe("Standard User");
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe("create", () => {
|
|
48
|
+
it("should create a profile", async () => {
|
|
49
|
+
let capturedBody;
|
|
50
|
+
server.use(http.post(`${BASE_URL}/profiles/`, async ({ request }) => {
|
|
51
|
+
capturedBody = await request.json();
|
|
52
|
+
return HttpResponse.json({ profiles: [mockProfile] });
|
|
53
|
+
}));
|
|
54
|
+
const result = await client.profiles.create({
|
|
55
|
+
name: "Standard User",
|
|
56
|
+
description: "Default profile for regular users",
|
|
57
|
+
});
|
|
58
|
+
expect(capturedBody).toMatchObject({
|
|
59
|
+
name: "Standard User",
|
|
60
|
+
description: "Default profile for regular users",
|
|
61
|
+
});
|
|
62
|
+
expect(result.name).toBe("Standard User");
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe("update", () => {
|
|
66
|
+
it("should update a profile", async () => {
|
|
67
|
+
const updatedProfile = { ...mockProfile, name: "Power User" };
|
|
68
|
+
server.use(http.put(`${BASE_URL}/profiles/profile_001/`, () => {
|
|
69
|
+
return HttpResponse.json({ profiles: [updatedProfile] });
|
|
70
|
+
}));
|
|
71
|
+
const result = await client.profiles.update("profile_001", {
|
|
72
|
+
name: "Power User",
|
|
73
|
+
});
|
|
74
|
+
expect(result.name).toBe("Power User");
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe("delete", () => {
|
|
78
|
+
it("should delete a profile", async () => {
|
|
79
|
+
server.use(http.delete(`${BASE_URL}/profiles/profile_001/`, () => {
|
|
80
|
+
return new HttpResponse(null, { status: 204 });
|
|
81
|
+
}));
|
|
82
|
+
await expect(client.profiles.delete("profile_001")).resolves.toBeUndefined();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=profiles.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/profiles.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reports.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/reports.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for reports API
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
5
|
+
import { http, HttpResponse } from "msw";
|
|
6
|
+
import { server } from "../../mocks/server.js";
|
|
7
|
+
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
|
+
import { mockReport, mockReports, mockReportData } from "../../fixtures/reports.js";
|
|
9
|
+
const TEST_PORTAL_ID = "12345";
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/restapi/portal/${TEST_PORTAL_ID}`;
|
|
11
|
+
describe("reports", () => {
|
|
12
|
+
let client;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
client = createZohoProjectsClient({
|
|
15
|
+
clientId: "test-client-id",
|
|
16
|
+
clientSecret: "test-client-secret",
|
|
17
|
+
refreshToken: "test-refresh-token",
|
|
18
|
+
portalId: TEST_PORTAL_ID,
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe("list", () => {
|
|
22
|
+
it("should list all reports", async () => {
|
|
23
|
+
server.use(http.get(`${BASE_URL}/reports/`, () => {
|
|
24
|
+
return HttpResponse.json({
|
|
25
|
+
reports: mockReports,
|
|
26
|
+
page_info: { page: 1, per_page: 100, has_more_page: false },
|
|
27
|
+
});
|
|
28
|
+
}));
|
|
29
|
+
const result = await client.reports.list();
|
|
30
|
+
expect(result.data).toHaveLength(2);
|
|
31
|
+
expect(result.data[0]).toMatchObject({
|
|
32
|
+
id: expect.any(Number),
|
|
33
|
+
name: expect.any(String),
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe("get", () => {
|
|
38
|
+
it("should get a single report by ID", async () => {
|
|
39
|
+
server.use(http.get(`${BASE_URL}/reports/3001/`, () => {
|
|
40
|
+
return HttpResponse.json({ reports: [mockReport] });
|
|
41
|
+
}));
|
|
42
|
+
const result = await client.reports.get("3001");
|
|
43
|
+
expect(result.id).toBe(3001);
|
|
44
|
+
expect(result.name).toBe("Task Status Report");
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe("execute", () => {
|
|
48
|
+
it("should execute a report and return data", async () => {
|
|
49
|
+
server.use(http.get(`${BASE_URL}/reports/3001/data/`, () => {
|
|
50
|
+
return HttpResponse.json(mockReportData);
|
|
51
|
+
}));
|
|
52
|
+
const result = await client.reports.execute("3001");
|
|
53
|
+
expect(result.data).toHaveLength(3);
|
|
54
|
+
expect(result.total_count).toBe(3);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe("listForProject", () => {
|
|
58
|
+
it("should list reports for a specific project", async () => {
|
|
59
|
+
server.use(http.get(`${BASE_URL}/projects/proj_001/reports/`, () => {
|
|
60
|
+
return HttpResponse.json({
|
|
61
|
+
reports: mockReports,
|
|
62
|
+
page_info: { page: 1, per_page: 100, has_more_page: false },
|
|
63
|
+
});
|
|
64
|
+
}));
|
|
65
|
+
const result = await client.reports.listForProject("proj_001");
|
|
66
|
+
expect(result.data).toHaveLength(2);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
describe("list with pagination", () => {
|
|
70
|
+
it("should list reports with pagination params", async () => {
|
|
71
|
+
let capturedParams;
|
|
72
|
+
server.use(http.get(`${BASE_URL}/reports/`, ({ request }) => {
|
|
73
|
+
capturedParams = new URL(request.url).searchParams;
|
|
74
|
+
return HttpResponse.json({
|
|
75
|
+
reports: mockReports,
|
|
76
|
+
page_info: { page: 1, per_page: 10, has_more_page: true },
|
|
77
|
+
});
|
|
78
|
+
}));
|
|
79
|
+
const result = await client.reports.list({ index: 0, range: 10 });
|
|
80
|
+
expect(capturedParams?.get("index")).toBe("0");
|
|
81
|
+
expect(capturedParams?.get("range")).toBe("10");
|
|
82
|
+
expect(result.data).toBeDefined();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=reports.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reports.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/reports.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/roles.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for roles API
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
5
|
+
import { http, HttpResponse } from "msw";
|
|
6
|
+
import { server } from "../../mocks/server.js";
|
|
7
|
+
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
|
+
import { mockRole, mockRoles } from "../../fixtures/roles.js";
|
|
9
|
+
const TEST_PORTAL_ID = "12345";
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/restapi/portal/${TEST_PORTAL_ID}`;
|
|
11
|
+
describe("roles", () => {
|
|
12
|
+
let client;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
client = createZohoProjectsClient({
|
|
15
|
+
clientId: "test-client-id",
|
|
16
|
+
clientSecret: "test-client-secret",
|
|
17
|
+
refreshToken: "test-refresh-token",
|
|
18
|
+
portalId: TEST_PORTAL_ID,
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe("list", () => {
|
|
22
|
+
it("should list all roles", async () => {
|
|
23
|
+
server.use(http.get(`${BASE_URL}/roles/`, () => {
|
|
24
|
+
return HttpResponse.json({
|
|
25
|
+
roles: mockRoles,
|
|
26
|
+
page_info: { page: 1, per_page: 100, has_more_page: false },
|
|
27
|
+
});
|
|
28
|
+
}));
|
|
29
|
+
const result = await client.roles.list();
|
|
30
|
+
expect(result.data).toHaveLength(3);
|
|
31
|
+
expect(result.data[0]).toMatchObject({
|
|
32
|
+
id: expect.any(String),
|
|
33
|
+
name: expect.any(String),
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe("get", () => {
|
|
38
|
+
it("should get a single role by ID", async () => {
|
|
39
|
+
server.use(http.get(`${BASE_URL}/roles/role_001/`, () => {
|
|
40
|
+
return HttpResponse.json({ roles: [mockRole] });
|
|
41
|
+
}));
|
|
42
|
+
const result = await client.roles.get("role_001");
|
|
43
|
+
expect(result.id).toBe("role_001");
|
|
44
|
+
expect(result.name).toBe("Project Manager");
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe("create", () => {
|
|
48
|
+
it("should create a role", async () => {
|
|
49
|
+
let capturedBody;
|
|
50
|
+
server.use(http.post(`${BASE_URL}/roles/`, async ({ request }) => {
|
|
51
|
+
capturedBody = await request.json();
|
|
52
|
+
return HttpResponse.json({ roles: [mockRole] });
|
|
53
|
+
}));
|
|
54
|
+
const result = await client.roles.create({
|
|
55
|
+
name: "Project Manager",
|
|
56
|
+
description: "Can manage projects",
|
|
57
|
+
});
|
|
58
|
+
expect(capturedBody).toMatchObject({
|
|
59
|
+
name: "Project Manager",
|
|
60
|
+
description: "Can manage projects",
|
|
61
|
+
});
|
|
62
|
+
expect(result.name).toBe("Project Manager");
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe("update", () => {
|
|
66
|
+
it("should update a role", async () => {
|
|
67
|
+
const updatedRole = { ...mockRole, name: "Senior Manager" };
|
|
68
|
+
server.use(http.put(`${BASE_URL}/roles/role_001/`, () => {
|
|
69
|
+
return HttpResponse.json({ roles: [updatedRole] });
|
|
70
|
+
}));
|
|
71
|
+
const result = await client.roles.update("role_001", {
|
|
72
|
+
name: "Senior Manager",
|
|
73
|
+
});
|
|
74
|
+
expect(result.name).toBe("Senior Manager");
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe("delete", () => {
|
|
78
|
+
it("should delete a role", async () => {
|
|
79
|
+
server.use(http.delete(`${BASE_URL}/roles/role_001/`, () => {
|
|
80
|
+
return new HttpResponse(null, { status: 204 });
|
|
81
|
+
}));
|
|
82
|
+
await expect(client.roles.delete("role_001")).resolves.toBeUndefined();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=roles.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/roles.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/search.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for search API
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
5
|
+
import { http, HttpResponse } from "msw";
|
|
6
|
+
import { server } from "../../mocks/server.js";
|
|
7
|
+
import { createZohoProjectsClient } from "../../../client.js";
|
|
8
|
+
import { mockSearchResults, mockSearchResponse } from "../../fixtures/search.js";
|
|
9
|
+
const TEST_PORTAL_ID = "12345";
|
|
10
|
+
const BASE_URL = `https://projectsapi.zoho.com/restapi/portal/${TEST_PORTAL_ID}`;
|
|
11
|
+
describe("search", () => {
|
|
12
|
+
let client;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
client = createZohoProjectsClient({
|
|
15
|
+
clientId: "test-client-id",
|
|
16
|
+
clientSecret: "test-client-secret",
|
|
17
|
+
refreshToken: "test-refresh-token",
|
|
18
|
+
portalId: TEST_PORTAL_ID,
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe("query", () => {
|
|
22
|
+
it("should search across all entities", async () => {
|
|
23
|
+
server.use(http.get(`${BASE_URL}/search/`, () => {
|
|
24
|
+
return HttpResponse.json(mockSearchResponse);
|
|
25
|
+
}));
|
|
26
|
+
const result = await client.search.query({ search_term: "search" });
|
|
27
|
+
expect(result.data).toHaveLength(3);
|
|
28
|
+
});
|
|
29
|
+
it("should search with entity type filter", async () => {
|
|
30
|
+
let capturedParams;
|
|
31
|
+
server.use(http.get(`${BASE_URL}/search/`, ({ request }) => {
|
|
32
|
+
capturedParams = new URL(request.url).searchParams;
|
|
33
|
+
return HttpResponse.json({
|
|
34
|
+
...mockSearchResponse,
|
|
35
|
+
results: mockSearchResults.filter((r) => r.entity_type === "task"),
|
|
36
|
+
});
|
|
37
|
+
}));
|
|
38
|
+
const result = await client.search.query({
|
|
39
|
+
search_term: "search",
|
|
40
|
+
entity_type: "task",
|
|
41
|
+
});
|
|
42
|
+
expect(capturedParams?.get("entity_type")).toBe("task");
|
|
43
|
+
expect(result.data).toBeDefined();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe("inProject", () => {
|
|
47
|
+
it("should search within a specific project", async () => {
|
|
48
|
+
let capturedParams;
|
|
49
|
+
server.use(http.get(`${BASE_URL}/search/`, ({ request }) => {
|
|
50
|
+
capturedParams = new URL(request.url).searchParams;
|
|
51
|
+
return HttpResponse.json(mockSearchResponse);
|
|
52
|
+
}));
|
|
53
|
+
const result = await client.search.inProject("proj_001", {
|
|
54
|
+
search_term: "search",
|
|
55
|
+
});
|
|
56
|
+
expect(capturedParams?.get("project_id")).toBe("proj_001");
|
|
57
|
+
expect(result.data).toBeDefined();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
describe("tasks", () => {
|
|
61
|
+
it("should search only tasks", async () => {
|
|
62
|
+
const taskResults = mockSearchResults.filter((r) => r.entity_type === "task");
|
|
63
|
+
server.use(http.get(`${BASE_URL}/search/`, () => {
|
|
64
|
+
return HttpResponse.json({
|
|
65
|
+
...mockSearchResponse,
|
|
66
|
+
results: taskResults,
|
|
67
|
+
search_results: taskResults,
|
|
68
|
+
total_count: taskResults.length,
|
|
69
|
+
});
|
|
70
|
+
}));
|
|
71
|
+
const result = await client.search.tasks("search");
|
|
72
|
+
expect(result.data).toBeDefined();
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe("issues", () => {
|
|
76
|
+
it("should search only bugs/issues", async () => {
|
|
77
|
+
const bugResults = mockSearchResults.filter((r) => r.entity_type === "bug");
|
|
78
|
+
server.use(http.get(`${BASE_URL}/search/`, () => {
|
|
79
|
+
return HttpResponse.json({
|
|
80
|
+
...mockSearchResponse,
|
|
81
|
+
results: bugResults,
|
|
82
|
+
search_results: bugResults,
|
|
83
|
+
total_count: bugResults.length,
|
|
84
|
+
});
|
|
85
|
+
}));
|
|
86
|
+
const result = await client.search.issues("search");
|
|
87
|
+
expect(result.data).toBeDefined();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
describe("projects", () => {
|
|
91
|
+
it("should search only projects", async () => {
|
|
92
|
+
const projectResults = mockSearchResults.filter((r) => r.entity_type === "project");
|
|
93
|
+
server.use(http.get(`${BASE_URL}/search/`, () => {
|
|
94
|
+
return HttpResponse.json({
|
|
95
|
+
...mockSearchResponse,
|
|
96
|
+
results: projectResults,
|
|
97
|
+
search_results: projectResults,
|
|
98
|
+
total_count: projectResults.length,
|
|
99
|
+
});
|
|
100
|
+
}));
|
|
101
|
+
const result = await client.search.projects("search");
|
|
102
|
+
expect(result.data).toBeDefined();
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=search.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/search.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/unit/client/teams.test.ts"],"names":[],"mappings":""}
|