server/tests/entities/Instance.test.ts

41 lines
1.4 KiB
TypeScript
Raw Normal View History

import { afterAll, beforeAll, describe, expect, it } from "bun:test";
import { AppDataSource } from "~database/datasource";
import { Instance } from "~database/entities/Instance";
let instance: Instance;
beforeAll(async () => {
if (!AppDataSource.isInitialized) await AppDataSource.initialize();
});
describe("Instance", () => {
it("should add an instance to the database if it doesn't already exist", async () => {
const url = "https://mastodon.social";
instance = await Instance.addIfNotExists(url);
expect(instance.base_url).toBe("mastodon.social");
});
it("should convert the instance to an API instance", async () => {
const apiInstance = await instance.toAPI();
expect(apiInstance.uri).toBe("mastodon.social");
expect(apiInstance.approval_required).toBe(false);
expect(apiInstance.email).toBe("staff@mastodon.social");
expect(apiInstance.thumbnail).toBeDefined();
expect(apiInstance.title).toBeDefined();
expect(apiInstance.configuration).toBeDefined();
expect(apiInstance.contact_account).toBeDefined();
expect(apiInstance.description).toBeDefined();
expect(apiInstance.invites_enabled).toBeDefined();
expect(apiInstance.languages).toBeDefined();
expect(apiInstance.registrations).toBeDefined();
expect(apiInstance.rules).toBeDefined();
expect(apiInstance.stats).toBeDefined();
expect(apiInstance.urls).toBeDefined();
expect(apiInstance.max_toot_chars).toBeDefined();
});
});
afterAll(async () => {
await instance.remove();
});