26 lines
1.2 KiB
TypeScript
26 lines
1.2 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { readFileSync } from 'node:fs';
|
|
import { resolve } from 'node:path';
|
|
|
|
const read = (path: string) => readFileSync(resolve(process.cwd(), path), 'utf8');
|
|
|
|
describe('M1 帮道大喇叭发布契约', () => {
|
|
it('管理端携带必读和定向范围,并使用受控目标选项', () => {
|
|
const api = read('src/api/aihr/broadcast.ts');
|
|
const page = read('src/views/content/broadcast.vue');
|
|
const pending = read('src/utils/broadcast-pending.ts');
|
|
|
|
expect(api).toContain('requiredRead: boolean;');
|
|
expect(api).toContain('targets: BroadcastTargetRequest;');
|
|
expect(api).toContain("'/api/aihr/broadcast/admin/target-options'");
|
|
expect(page).toContain('v-model="form.requiredRead"');
|
|
expect(page).toContain('v-model="form.targets.projectCodes"');
|
|
expect(page).toContain('v-model="form.targets.positionNames"');
|
|
expect(page).toContain('v-model="form.targets.positionLevels"');
|
|
expect(page).toContain('loadBroadcastTargetOptions');
|
|
expect(page).toContain('matchedRecipientCount');
|
|
expect(pending).toContain('requiredRead: boolean;');
|
|
expect(pending).toContain('targets: BroadcastTargetRequest;');
|
|
});
|
|
});
|