diff --git a/cypress/e2e/files/FileSystemAPIUtils.ts b/cypress/e2e/files/FileSystemAPIUtils.ts new file mode 100644 index 0000000000000..995aef2ced5dd --- /dev/null +++ b/cypress/e2e/files/FileSystemAPIUtils.ts @@ -0,0 +1,59 @@ +import { basename } from 'node:path' + +class FileSystemEntry { + + private _isFile: boolean + private _fullPath: string + + constructor(isFile: boolean, fullPath: string) { + this._isFile = isFile + this._fullPath = fullPath + } + + get isFile() { + return !!this._isFile + } + + get isDirectory() { + return !this.isFile + } + + get name() { + return basename(this._fullPath) + } + +} + +export class FileSystemFileEntry extends FileSystemEntry { + + private _contents: string + + constructor(fullPath: string, contents: string) { + super(true, fullPath) + this._contents = contents + } + + file(success: (file: File) => void) { + success(new File([this._contents], this.name)) + } + +} + +export class FileSystemDirectoryEntry extends FileSystemEntry { + + private _entries: FileSystemEntry[] + + constructor(fullPath: string, entries: FileSystemEntry[]) { + super(false, fullPath) + this._entries = entries || [] + } + + createReader() { + return { + readEntries: (success: (entries: FileSystemEntry[]) => void) => { + success(this._entries) + }, + } + } + +} diff --git a/cypress/e2e/files/drag-n-drop.cy.ts b/cypress/e2e/files/drag-n-drop.cy.ts index 9ede2536f67e1..1e1809148b0c6 100644 --- a/cypress/e2e/files/drag-n-drop.cy.ts +++ b/cypress/e2e/files/drag-n-drop.cy.ts @@ -1,6 +1,6 @@ import { getRowForFile } from './FilesUtils.ts' -describe('files: Drag and Drop', { testIsolation: true }, () => { +describe('files: Drag and Drop legacy', { testIsolation: true }, () => { beforeEach(() => { cy.createRandomUser().then((user) => { cy.login(user)