diff options
author | skjnldsv <skjnldsv@protonmail.com> | 2024-08-21 19:28:55 +0200 |
---|---|---|
committer | John Molakvoæ <skjnldsv@users.noreply.github.com> | 2024-08-22 13:32:59 +0200 |
commit | b6bc28833ca7292aa6144fab9710868cf252925f (patch) | |
tree | 3245d54c2eb748df4ba1c25b312534a8d282365d /cypress/support/commands.ts | |
parent | 49fa2e508d286f10c5f80b3b5dc5ca28e323ce99 (diff) | |
download | nextcloud-server-b6bc28833ca7292aa6144fab9710868cf252925f.tar.gz nextcloud-server-b6bc28833ca7292aa6144fab9710868cf252925f.zip |
chore(cypress): allow db snapshot and restore fo faster tests
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Diffstat (limited to 'cypress/support/commands.ts')
-rw-r--r-- | cypress/support/commands.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 6ca0388a0a0..e5aa11df775 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -65,6 +65,17 @@ declare global { * Run an occ command in the docker container. */ runOccCommand(command: string, options?: Partial<Cypress.ExecOptions>): Cypress.Chainable<Cypress.Exec>, + + /** + * Create a snapshot of the current database + */ + backupDB(): Cypress.Chainable<string>, + + /** + * Restore a snapshot of the database + * Default is the post-setup state + */ + restoreDB(snapshot?: string): Cypress.Chainable, } } } @@ -276,3 +287,15 @@ Cypress.Commands.add('runOccCommand', (command: string, options?: Partial<Cypres const env = Object.entries(options?.env ?? {}).map(([name, value]) => `-e '${name}=${value}'`).join(' ') return cy.exec(`docker exec --user www-data ${env} nextcloud-cypress-tests-server php ./occ ${command}`, options) }) + +Cypress.Commands.add('backupDB', (): Cypress.Chainable<string> => { + const randomString = Math.random().toString(36).substring(7) + cy.exec(`docker exec nextcloud-cypress-tests-server cp /var/www/html/data/owncloud.db /var/www/html/data/owncloud.db-${randomString}`) + cy.log(`Created snapshot ${randomString}`) + return cy.wrap(randomString) +}) + +Cypress.Commands.add('restoreDB', (snapshot: string = 'init') => { + cy.exec(`docker exec nextcloud-cypress-tests-server cp /var/www/html/data/owncloud.db-${snapshot} /var/www/html/data/owncloud.db`) + cy.log(`Restored snapshot ${snapshot}`) +}) |