Files
edgeever/tests/mobile-app-scope.test.ts
T

41 lines
1.3 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { readFileSync } from "node:fs";
const workspaceSource = readFileSync(
new URL("../apps/mobile/src/screens/WorkspaceScreen.tsx", import.meta.url),
"utf8"
);
const accountSecuritySource = readFileSync(
new URL("../apps/mobile/src/screens/AccountSecurityModal.tsx", import.meta.url),
"utf8"
);
describe("mobile app scope", () => {
test("keeps workspace administration out of the native app", () => {
for (const removedCapability of [
"ApiTokensModal",
"ResourcesModal",
"TagsManagerModal",
"createApiToken",
"deleteApiToken",
"mergeMemos",
]) {
expect(workspaceSource).not.toContain(removedCapability);
}
});
test("limits account security to the signed-in user", () => {
for (const removedCapability of ["createUser", "listUsers", "updateUser"]) {
expect(accountSecuritySource).not.toContain(removedCapability);
}
});
test("keeps version history reachable from an active note", () => {
expect(workspaceSource).toMatch(
/\{memo && !memo\.isDeleted \? \(\s*<Pressable\s+accessibilityLabel="版本历史"/
);
expect(workspaceSource).toContain('syncStatus === "conflict"');
expect(workspaceSource).toContain("onResolveSyncConflict");
});
});