43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import randomstring from "randomstring";
|
|
import { buildApiKey } from "@server/test/factories";
|
|
import ApiKey from "./ApiKey";
|
|
|
|
describe("#ApiKey", () => {
|
|
describe("match", () => {
|
|
test("should match an API secret", async () => {
|
|
const apiKey = await buildApiKey({
|
|
name: "Dev",
|
|
});
|
|
expect(ApiKey.match(apiKey?.secret)).toBe(true);
|
|
expect(ApiKey.match(`${randomstring.generate(38)}`)).toBe(true);
|
|
});
|
|
|
|
test("should not match non secrets", async () => {
|
|
expect(ApiKey.match("123")).toBe(false);
|
|
expect(ApiKey.match("1234567890")).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe("lastActiveAt", () => {
|
|
test("should update lastActiveAt", async () => {
|
|
const apiKey = await buildApiKey({
|
|
name: "Dev",
|
|
});
|
|
await apiKey.updateActiveAt();
|
|
expect(apiKey.lastActiveAt).toBeTruthy();
|
|
});
|
|
|
|
test("should not update lastActiveAt within 5 minutes", async () => {
|
|
const apiKey = await buildApiKey({
|
|
name: "Dev",
|
|
});
|
|
await apiKey.updateActiveAt();
|
|
expect(apiKey.lastActiveAt).toBeTruthy();
|
|
|
|
const lastActiveAt = apiKey.lastActiveAt;
|
|
await apiKey.updateActiveAt();
|
|
expect(apiKey.lastActiveAt).toEqual(lastActiveAt);
|
|
});
|
|
});
|
|
});
|