feat(editor): Add Production checklist for active workflows (#17756)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
This commit is contained in:
Mutasem Aldmour
2025-08-06 11:15:10 +02:00
committed by GitHub
parent b6c7810844
commit 6046d24c74
46 changed files with 3443 additions and 246 deletions

View File

@@ -260,6 +260,57 @@ Cypress.Commands.add('resetDatabase', () => {
});
});
Cypress.Commands.add('clearIndexedDB', (dbName: string, storeName?: string) => {
cy.window().then((win) => {
return new Promise<void>((resolve, reject) => {
if (!win.indexedDB) {
resolve();
return;
}
// If storeName is provided, clear specific store; otherwise delete entire database
if (storeName) {
const openRequest = win.indexedDB.open(dbName);
openRequest.onsuccess = () => {
const db = openRequest.result;
if (!db.objectStoreNames.contains(storeName)) {
db.close();
resolve();
return;
}
const transaction = db.transaction([storeName], 'readwrite');
const store = transaction.objectStore(storeName);
const clearRequest = store.clear();
clearRequest.onsuccess = () => {
db.close();
resolve();
};
clearRequest.onerror = () => {
db.close();
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
reject(clearRequest.error);
};
};
openRequest.onerror = () => {
resolve(); // Database doesn't exist, nothing to clear
};
} else {
const deleteRequest = win.indexedDB.deleteDatabase(dbName);
deleteRequest.onsuccess = () => resolve();
deleteRequest.onerror = () => resolve(); // Ignore errors if DB doesn't exist
deleteRequest.onblocked = () => resolve(); // Ignore if blocked
}
});
});
});
Cypress.Commands.add('interceptNewTab', () => {
cy.window().then((win) => {
cy.stub(win, 'open').as('windowOpen');

View File

@@ -90,6 +90,7 @@ declare global {
}
>;
resetDatabase(): void;
clearIndexedDB(dbName: string, storeName?: string): Chainable<void>;
setAppDate(targetDate: number | Date): void;
interceptNewTab(): Chainable<void>;
visitInterceptedTab(): Chainable<void>;