docs: rifinisci test migrazione nel piano
This commit is contained in:
@@ -52,18 +52,15 @@ describe('migrazioni ruoli/guid/autore', () => {
|
||||
expect(guids.size).toBe(rows.length);
|
||||
});
|
||||
|
||||
it('migra il ruolo editor a superuser', () => {
|
||||
it('lo statement di migrazione unifica editor in superuser', () => {
|
||||
// La migrazione gira dentro createDb, ma :memory: non persiste tra due boot: qui
|
||||
// verifichiamo l'invariante SQL applicata dalla migrazione (editor → superuser).
|
||||
// L'end-to-end su DB pre-esistente è coperto dallo smoke di produzione (Task 15).
|
||||
const db = createDb(':memory:');
|
||||
db.prepare("INSERT INTO users (username, password_hash, role) VALUES ('vecchio', 'x', 'editor')").run();
|
||||
// Rilancia la migrazione: nella stessa istanza simuliamo un secondo boot ricreando su file? No:
|
||||
// la migrazione gira in createDb, quindi inseriamo PRIMA e ricreiamo su un file condiviso.
|
||||
const path = ':memory:';
|
||||
// Verifica idempotenza logica: la UPDATE è esposta anche come effetto di createDb; qui
|
||||
// testiamo direttamente l'invariante col DB già migrato + insert manuale + re-run UPDATE.
|
||||
db.prepare("UPDATE users SET role = 'superuser' WHERE role = 'editor'").run();
|
||||
const row = db.prepare("SELECT role FROM users WHERE username = 'vecchio'").get() as { role: string };
|
||||
expect(row.role).toBe('superuser');
|
||||
expect(path).toBe(':memory:');
|
||||
});
|
||||
|
||||
it('posts ha la colonna author_id', () => {
|
||||
|
||||
Reference in New Issue
Block a user