Skip to content

Commit cfe886a

Browse files
committed
chore: replace cypress-delete-downloads-folder with simple implementation
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
1 parent 1082dee commit cfe886a

File tree

7 files changed

+136
-128
lines changed

7 files changed

+136
-128
lines changed

cypress.config.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@
66

77
import { configureNextcloud, docker, getContainer, getContainerName, runExec, runOcc, startNextcloud, stopNextcloud, waitOnNextcloud } from '@nextcloud/e2e-test-server'
88
import { defineConfig } from 'cypress'
9-
import { removeDirectory } from 'cypress-delete-downloads-folder'
109
import cypressSplit from 'cypress-split'
1110
import vitePreprocessor from 'cypress-vite'
12-
import { existsSync } from 'node:fs'
11+
import { existsSync, rmdirSync } from 'node:fs'
1312
import { dirname, join, resolve } from 'node:path'
1413
import { fileURLToPath } from 'node:url'
1514
import { nodePolyfills } from 'vite-plugin-node-polyfills'
@@ -68,8 +67,6 @@ export default defineConfig({
6867
plugins: [nodePolyfills()],
6968
}))
7069

71-
on('task', { removeDirectory })
72-
7370
// This allows to store global data (e.g. the name of a snapshot)
7471
// because Cypress.env() and other options are local to the current spec file.
7572
const data: Record<string, unknown> = {}
@@ -81,6 +78,17 @@ export default defineConfig({
8178
getVariable({ key }) {
8279
return data[key] ?? null
8380
},
81+
// allow to clear the downloads folder
82+
deleteFolder(path: string) {
83+
try {
84+
if (existsSync(path)) {
85+
rmdirSync(path, { maxRetries: 10, recursive: true })
86+
}
87+
return null
88+
} catch (error) {
89+
throw Error(`Error while deleting ${path}. Original error: ${error}`)
90+
}
91+
},
8492
})
8593

8694
// Disable spell checking to prevent rendering differences

cypress/e2e/files/files-download.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import type { User } from '@nextcloud/e2e-test-server/cypress'
77

8-
import { deleteDownloadsFolderBeforeEach } from 'cypress-delete-downloads-folder'
98
import { zipFileContains } from '../../support/utils/assertions.ts'
9+
import { deleteDownloadsFolderBeforeEach } from '../../support/utils/deleteDownloadsFolder.ts'
1010
import { randomString } from '../../support/utils/randomString.ts'
1111
import { getRowForFile, navigateToFolder, triggerActionForFile } from './FilesUtils.ts'
1212

cypress/e2e/files_sharing/public-share/download.cy.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
import type { User } from '@nextcloud/e2e-test-server/cypress'
77
import type { ShareContext } from './PublicShareUtils.ts'
88

9-
// @ts-expect-error The package is currently broken - but works...
10-
import { deleteDownloadsFolderBeforeEach } from 'cypress-delete-downloads-folder'
119
import { zipFileContains } from '../../../support/utils/assertions.ts'
10+
import { deleteDownloadsFolderBeforeEach } from '../../../support/utils/deleteDownloadsFolder.ts'
1211
import { getRowForFile, getRowForFileId, triggerActionForFile, triggerActionForFileId } from '../../files/FilesUtils.ts'
1312
import { createLinkShare, getShareUrl, openLinkShareDetails, setupPublicShare } from './PublicShareUtils.ts'
1413

cypress/e2e/files_trashbin/files.cy.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@
55

66
import type { User } from '@nextcloud/e2e-test-server/cypress'
77

8-
// @ts-expect-error package has wrong typings
9-
import { deleteDownloadsFolderBeforeEach } from 'cypress-delete-downloads-folder'
8+
import { deleteDownloadsFolderBeforeEach } from '../../support/utils/deleteDownloadsFolder.ts'
109
import { deleteFileWithRequest, getRowForFileId, selectAllFiles, triggerActionForFileId } from '../files/FilesUtils.ts'
1110

1211
describe('files_trashbin: download files', { testIsolation: true }, () => {
1312
let user: User
14-
const fileids: number[] = []
13+
const fileids: [number, number] = [0, 0]
1514

1615
deleteDownloadsFolderBeforeEach()
1716

@@ -20,10 +19,10 @@ describe('files_trashbin: download files', { testIsolation: true }, () => {
2019
user = $user
2120

2221
cy.uploadContent(user, new Blob(['<content>']), 'text/plain', '/file.txt')
23-
.then(({ headers }) => fileids.push(Number.parseInt(headers['oc-fileid'])))
22+
.then(({ headers }) => fileids[0] = Number.parseInt(headers['oc-fileid']))
2423
.then(() => deleteFileWithRequest(user, '/file.txt'))
2524
cy.uploadContent(user, new Blob(['<content>']), 'text/plain', '/other-file.txt')
26-
.then(({ headers }) => fileids.push(Number.parseInt(headers['oc-fileid'])))
25+
.then(({ headers }) => fileids[1] = Number.parseInt(headers['oc-fileid']))
2726
.then(() => deleteFileWithRequest(user, '/other-file.txt'))
2827
})
2928
})
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/*!
2+
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
3+
* SPDX-License-Identifier: AGPL-3.0-or-later
4+
*/
5+
6+
/**
7+
* Ensure the downloads folder is deleted before each test
8+
*/
9+
export function deleteDownloadsFolderBeforeEach() {
10+
beforeEach(() => cy.task('deleteFolder', Cypress.config('downloadsFolder')))
11+
}

0 commit comments

Comments
 (0)