kt-template-online-api/test/admin/admin-user-avatar-sql.spec.ts

46 lines
1.8 KiB
TypeScript

import { readFileSync } from 'node:fs';
import { join } from 'node:path';
describe('admin user avatar sql', () => {
const avatarSql = readFileSync(
join(process.cwd(), 'sql/admin-user-avatar.sql'),
'utf8',
);
const initSql = readFileSync(
join(process.cwd(), 'sql/vben-admin-init.sql'),
'utf8',
);
const refactorSeedSql = readFileSync(
join(process.cwd(), 'sql/refactor-v3/01-seed-core.sql'),
'utf8',
);
it('adds avatar column for existing databases', () => {
expect(avatarSql).toContain("COLUMN_NAME = 'avatar'");
expect(avatarSql).toContain('ALTER TABLE `admin_user` ADD COLUMN `avatar`');
expect(avatarSql).toContain('varchar(1024)');
});
it('keeps init sql aligned without resetting existing avatars', () => {
expect(initSql).toContain('`avatar` varchar(1024) NOT NULL DEFAULT');
expect(initSql).toContain("COLUMN_NAME = 'avatar'");
expect(initSql).toContain(
"INSERT INTO `admin_user` (`id`, `username`, `password`, `real_name`, `avatar`, `dept_id`, `home_path`, `timezone`, `status`)",
);
expect(initSql).not.toContain('`avatar` = VALUES(`avatar`)');
});
it('seeds the renamed administrator and removes the fake workspace menu', () => {
expect(initSql).toContain("'kwitsukasa', '123456', 'KwiTsukasa'");
expect(initSql).toContain("'/analytics', 'Asia/Shanghai'");
expect(initSql).toContain("'Analytics', '/analytics'");
expect(initSql).not.toContain("'vben', '123456'");
expect(initSql).not.toContain("'jack', '123456'");
expect(initSql).not.toContain("'Workspace'");
expect(initSql).not.toContain("'/workspace'");
expect(initSql).toContain('`username` = VALUES(`username`)');
expect(initSql).not.toContain('`password` = VALUES(`password`)');
expect(refactorSeedSql).not.toContain('password = VALUES(password)');
});
});