UNPKG

@jesseditson/dnsimple

Version:

A Node.JS client for the DNSimple API.

103 lines (102 loc) 5.62 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const nock = require("nock"); const util_1 = require("./util"); const dnsimple = (0, util_1.createTestClient)(); describe("tlds", () => { describe("#listTlds", () => { it("supports pagination", () => __awaiter(void 0, void 0, void 0, function* () { const scope = nock("https://api.dnsimple.com") .get("/v2/tlds?page=1") .reply((0, util_1.readFixtureAt)("listTlds/success.http")); yield dnsimple.tlds.listTlds({ page: 1 }); expect(scope.isDone()).toBeTruthy(); })); it("supports extra request options", () => __awaiter(void 0, void 0, void 0, function* () { const scope = nock("https://api.dnsimple.com") .get("/v2/tlds?foo=bar") .reply((0, util_1.readFixtureAt)("listTlds/success.http")); yield dnsimple.tlds.listTlds({ foo: "bar" }); expect(scope.isDone()).toBeTruthy(); })); it("supports sorting", () => __awaiter(void 0, void 0, void 0, function* () { const scope = nock("https://api.dnsimple.com") .get("/v2/tlds?sort=tld%3Aasc") .reply((0, util_1.readFixtureAt)("listTlds/success.http")); yield dnsimple.tlds.listTlds({ sort: "tld:asc" }); expect(scope.isDone()).toBeTruthy(); })); it("produces a tld list", () => __awaiter(void 0, void 0, void 0, function* () { nock("https://api.dnsimple.com") .get("/v2/tlds") .reply((0, util_1.readFixtureAt)("listTlds/success.http")); const response = yield dnsimple.tlds.listTlds(); const tlds = response.data; expect(tlds.length).toBe(2); expect(tlds[0].tld).toBe("ac"); })); it("exposes the pagination info", () => __awaiter(void 0, void 0, void 0, function* () { nock("https://api.dnsimple.com") .get("/v2/tlds") .reply((0, util_1.readFixtureAt)("listTlds/success.http")); const response = yield dnsimple.tlds.listTlds(); const pagination = response.pagination; expect(pagination).not.toBe(null); expect(pagination.current_page).toBe(1); })); }); describe("#getTld", () => { it("produces a tld", () => __awaiter(void 0, void 0, void 0, function* () { nock("https://api.dnsimple.com") .get("/v2/tlds/com") .reply((0, util_1.readFixtureAt)("getTld/success.http")); const response = yield dnsimple.tlds.getTld("com"); const tld = response.data; expect(tld.tld).toBe("com"); expect(tld.tld_type).toBe(1); expect(tld.whois_privacy).toBe(true); expect(tld.auto_renew_only).toBe(false); expect(tld.idn).toBe(true); expect(tld.minimum_registration).toBe(1); expect(tld.registration_enabled).toBe(true); expect(tld.renewal_enabled).toBe(true); expect(tld.transfer_enabled).toBe(true); expect(tld.dnssec_interface_type).toBe("ds"); })); }); describe("#getTldExtendedAttributes", () => { it("produces a collection of extended attributes", () => __awaiter(void 0, void 0, void 0, function* () { nock("https://api.dnsimple.com") .get("/v2/tlds/uk/extended_attributes") .reply((0, util_1.readFixtureAt)("getTldExtendedAttributes/success.http")); const response = yield dnsimple.tlds.getTldExtendedAttributes("uk"); const extendedAttributes = response.data; expect(extendedAttributes.length).toBe(4); expect(extendedAttributes[0].name).toBe("uk_legal_type"); expect(extendedAttributes[0].description).toBe("Legal type of registrant contact"); expect(extendedAttributes[0].required).toBe(false); expect(extendedAttributes[0].options.length).toBe(17); expect(extendedAttributes[0].options[0].title).toBe("UK Individual"); expect(extendedAttributes[0].options[0].value).toBe("IND"); expect(extendedAttributes[0].options[0].description).toBe("UK Individual (our default value)"); })); describe("when there are no extended attributes for a TLD", () => { it("returns an empty collection", () => __awaiter(void 0, void 0, void 0, function* () { nock("https://api.dnsimple.com") .get("/v2/tlds/com/extended_attributes") .reply((0, util_1.readFixtureAt)("getTldExtendedAttributes/success-noattributes.http")); const response = yield dnsimple.tlds.getTldExtendedAttributes("com"); expect(response.data).toEqual([]); })); }); }); });