mirror of
https://github.com/tiennm99/is-a-dev.git
synced 2026-05-16 22:59:15 +00:00
211 lines
7.5 KiB
JavaScript
211 lines
7.5 KiB
JavaScript
const R = require("ramda");
|
|
const { CpanelClient } = require("../utils/lib/cpanel");
|
|
|
|
const mockFetch =
|
|
(expectRequest, decorate = R.identity) =>
|
|
(reqUrl, request) => {
|
|
expectRequest(reqUrl, request);
|
|
return Promise.resolve({
|
|
json: async () => decorate(request),
|
|
});
|
|
};
|
|
|
|
describe("Cpanel client", () => {
|
|
describe("fetchzonerecords", () => {
|
|
it("should make the correct request", async () => {
|
|
const fetch = mockFetch((url, request) => {
|
|
expect(url).toBe(
|
|
"https://example.com:2000/json-api/cpanel?customonly=0&domain=a.b&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone_records&cpanel_jsonapi_apiversion=2",
|
|
);
|
|
expect(request).toEqual({
|
|
headers: {
|
|
Authorization: "cpanel boy:boybyebye",
|
|
},
|
|
rejectUnauthorized: false,
|
|
});
|
|
});
|
|
|
|
const cpanel = CpanelClient({
|
|
host: "example.com",
|
|
port: 2000,
|
|
username: "boy",
|
|
apiKey: "boybyebye",
|
|
domain: "a.b",
|
|
dependencies: { fetch },
|
|
});
|
|
|
|
await cpanel.zone.fetch();
|
|
});
|
|
|
|
it("should make the correct request with query", async () => {
|
|
const fetch = mockFetch((url, request) => {
|
|
expect(url).toBe(
|
|
"https://example.com:2000/json-api/cpanel?customonly=0&domain=foobar.boeey&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone_records&cpanel_jsonapi_apiversion=2",
|
|
);
|
|
expect(request).toEqual({
|
|
headers: {
|
|
Authorization: "cpanel boy:boybyebye",
|
|
},
|
|
rejectUnauthorized: false,
|
|
});
|
|
});
|
|
|
|
const cpanel = CpanelClient({
|
|
host: "example.com",
|
|
port: 2000,
|
|
username: "boy",
|
|
apiKey: "boybyebye",
|
|
domain: "a.b",
|
|
dependencies: { fetch },
|
|
});
|
|
|
|
await cpanel.zone.fetch({ domain: "foobar.boeey" });
|
|
});
|
|
});
|
|
|
|
describe("addzonerecord", () => {
|
|
it("should make the correct request", async () => {
|
|
const fetch = mockFetch((url, request) => {
|
|
expect(url).toBe(
|
|
"https://example.com:2000/json-api/cpanel?domain=a.b&name=googo&type=CNAME&cname=beey&ttl=2020&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=add_zone_record&cpanel_jsonapi_apiversion=2",
|
|
);
|
|
expect(request).toEqual({
|
|
headers: {
|
|
Authorization: "cpanel boy:boybyebye",
|
|
},
|
|
rejectUnauthorized: false,
|
|
});
|
|
});
|
|
|
|
const cpanel = CpanelClient({
|
|
host: "example.com",
|
|
port: 2000,
|
|
username: "boy",
|
|
apiKey: "boybyebye",
|
|
domain: "a.b",
|
|
dependencies: { fetch },
|
|
});
|
|
|
|
await cpanel.zone.add({
|
|
name: "googo",
|
|
type: "boyee",
|
|
cname: "beey",
|
|
type: "CNAME",
|
|
ttl: 2020,
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("addzonerecord", () => {
|
|
it("should make the correct request", async () => {
|
|
const fetch = mockFetch((url, request) => {
|
|
expect(url).toBe(
|
|
"https://example.com:2000/json-api/cpanel?domain=a.b&line=500&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=remove_zone_record&cpanel_jsonapi_apiversion=2",
|
|
);
|
|
expect(request).toEqual({
|
|
headers: {
|
|
Authorization: "cpanel boy:boybyebye",
|
|
},
|
|
rejectUnauthorized: false,
|
|
});
|
|
});
|
|
|
|
const cpanel = CpanelClient({
|
|
host: "example.com",
|
|
port: 2000,
|
|
username: "boy",
|
|
apiKey: "boybyebye",
|
|
domain: "a.b",
|
|
dependencies: { fetch },
|
|
});
|
|
|
|
await cpanel.zone.remove({
|
|
line: 500,
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("fetchredirections", () => {
|
|
it("should make the correct request", async () => {
|
|
const fetch = mockFetch((url, request) => {
|
|
expect(url).toBe(
|
|
"https://example.com:2000/execute/Mime/list_redirects?cpanel_jsonapi_user=boy&cpanel_jsonapi_module=Mime&cpanel_jsonapi_func=list_redirects&cpanel_jsonapi_apiversion=2",
|
|
);
|
|
expect(request).toEqual({
|
|
headers: {
|
|
Authorization: "cpanel boy:boybyebye",
|
|
},
|
|
rejectUnauthorized: false,
|
|
});
|
|
});
|
|
|
|
const cpanel = CpanelClient({
|
|
host: "example.com",
|
|
port: 2000,
|
|
username: "boy",
|
|
apiKey: "boybyebye",
|
|
domain: "a.b",
|
|
dependencies: { fetch },
|
|
});
|
|
|
|
await cpanel.redirection.fetch();
|
|
});
|
|
});
|
|
describe("addredirection", () => {
|
|
it("should make the correct request", async () => {
|
|
const fetch = mockFetch((url, request) => {
|
|
expect(url).toBe(
|
|
"https://example.com:2000/execute/Mime/add_redirect?domain=googo&destination=https%3A%2F%2Foodf.com&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=Mime&cpanel_jsonapi_func=add_redirect&cpanel_jsonapi_apiversion=2",
|
|
);
|
|
expect(request).toEqual({
|
|
headers: {
|
|
Authorization: "cpanel boy:boybyebye",
|
|
},
|
|
rejectUnauthorized: false,
|
|
});
|
|
});
|
|
|
|
const cpanel = CpanelClient({
|
|
host: "example.com",
|
|
port: 2000,
|
|
username: "boy",
|
|
apiKey: "boybyebye",
|
|
domain: "a.b",
|
|
dependencies: { fetch },
|
|
});
|
|
|
|
await cpanel.redirection.add({
|
|
domain: "googo",
|
|
destination: "https://oodf.com",
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("deleteredirection", () => {
|
|
it("should make the correct request", async () => {
|
|
const fetch = mockFetch((url, request) => {
|
|
expect(url).toBe(
|
|
"https://example.com:2000/execute/Mime/delete_redirect?domain=googo&cpanel_jsonapi_user=boy&cpanel_jsonapi_module=Mime&cpanel_jsonapi_func=delete_redirect&cpanel_jsonapi_apiversion=2",
|
|
);
|
|
expect(request).toEqual({
|
|
headers: {
|
|
Authorization: "cpanel boy:boybyebye",
|
|
},
|
|
rejectUnauthorized: false,
|
|
});
|
|
});
|
|
|
|
const cpanel = CpanelClient({
|
|
host: "example.com",
|
|
port: 2000,
|
|
username: "boy",
|
|
apiKey: "boybyebye",
|
|
domain: "a.b",
|
|
dependencies: { fetch },
|
|
});
|
|
|
|
await cpanel.redirection.remove({ domain: "googo" });
|
|
});
|
|
});
|
|
});
|