348e192800
Wire /learn static delivery, parent/child portal routes, and Tang page build scripts for 103 deploy. Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
2.1 KiB
JavaScript
56 lines
2.1 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import fs from 'node:fs/promises';
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
import test from 'node:test';
|
|
|
|
import { createLearnAssistantFamilyRegistry } from './learn-assistant-family.mjs';
|
|
import { createLearnAssistantService } from './learn-assistant-service.mjs';
|
|
|
|
test('family registry creates owner family and accepts co-parent invite', async () => {
|
|
const dataRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'learn-family-'));
|
|
const service = createLearnAssistantService({ dataRoot });
|
|
const registry = createLearnAssistantFamilyRegistry({
|
|
dataRoot,
|
|
seedFamilyDefaults: service.seedFamilyDefaults,
|
|
});
|
|
|
|
const dad = 'dad-user-id-001';
|
|
const mom = 'mom-user-id-002';
|
|
|
|
const { family: dadFamily, created } = await registry.getFamilyForUser(dad, { displayName: '爸爸' });
|
|
assert.equal(created, true);
|
|
assert.equal(dadFamily.ownerUserId, dad);
|
|
|
|
const invite = await registry.createInvite(dad, { displayName: '爸爸' });
|
|
assert.ok(invite.token);
|
|
|
|
const joined = await registry.acceptInvite(mom, invite.token, { displayName: '妈妈' });
|
|
assert.equal(joined.family.id, dadFamily.id);
|
|
assert.equal(joined.family.members.length, 2);
|
|
|
|
const momFamily = await registry.requireFamilyForUser(mom);
|
|
assert.equal(momFamily.id, dadFamily.id);
|
|
|
|
await service.parentAddChild(dadFamily.id, { name: '宝宝', emoji: '🙂' });
|
|
const children = await service.listChildren(dadFamily.id);
|
|
assert.equal(children.data.length, 1);
|
|
|
|
const momView = await service.listChildren((await registry.requireFamilyForUser(mom)).id);
|
|
assert.equal(momView.data[0].name, '宝宝');
|
|
});
|
|
|
|
test('legacy tang slug resolves and seeds defaults', async () => {
|
|
const dataRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'learn-tang-'));
|
|
const service = createLearnAssistantService({ dataRoot });
|
|
const registry = createLearnAssistantFamilyRegistry({
|
|
dataRoot,
|
|
seedFamilyDefaults: service.seedFamilyDefaults,
|
|
});
|
|
|
|
const family = await registry.getFamilyBySlug('tang');
|
|
assert.equal(family.slug, 'tang');
|
|
const children = await service.listChildren(family.id);
|
|
assert.equal(children.data.length, 2);
|
|
});
|