Migrazione: rimuove i tag orfani training.performance-class.*
Il riquadro training "performance-class" è stato rimosso dal seed nel commit
9966ec3, ma i suoi 5 tag restavano nei DB esistenti come orfani non
renderizzati (uno con un edit errato dell'editor, "Holistic Class"). Aggiunge
una DELETE idempotente per l'intero gruppo; il seed non li reinserisce
(trainings.ts non ha più questo id). Verificata su copia del DB prod: 5 -> 0
orfani, riquadri validi e 39 edit reali del pannello intatti.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -139,6 +139,28 @@ describe('schema content_blocks e ruoli', () => {
|
||||
}
|
||||
});
|
||||
|
||||
it('rimuove i tag orfani training.performance-class.* (riquadro rimosso)', () => {
|
||||
const dir = mkdtempSync(join(tmpdir(), 'il-db-orf-'));
|
||||
const path = join(dir, 'test.db');
|
||||
try {
|
||||
// DB con i tag orfani del vecchio riquadro performance-class.
|
||||
const db1 = createDb(path);
|
||||
const ins = db1.prepare("INSERT OR REPLACE INTO content_blocks (tag, type, value, guid) VALUES (?, 'text', ?, ?)");
|
||||
ins.run('training.performance-class.title', 'Holistic Class', 'g1');
|
||||
ins.run('training.performance-class.caption', 'Classi fino a 8 persone', 'g2');
|
||||
db1.close();
|
||||
|
||||
const db2 = createDb(path);
|
||||
const count = (db2.prepare("SELECT count(*) c FROM content_blocks WHERE tag LIKE 'training.performance-class.%'").get() as { c: number }).c;
|
||||
expect(count).toBe(0);
|
||||
// I riquadri validi restano.
|
||||
expect((db2.prepare("SELECT count(*) c FROM content_blocks WHERE tag = 'training.holistic-class.title'").get() as { c: number }).c).toBe(1);
|
||||
db2.close();
|
||||
} finally {
|
||||
rmSync(dir, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
|
||||
it('migra un DB esistente senza colonna role', () => {
|
||||
// simula DB vecchio: createDb due volte sullo stesso path in-memory non è possibile,
|
||||
// quindi si verifica che la migrazione sia idempotente (doppia esecuzione non lancia)
|
||||
|
||||
Reference in New Issue
Block a user