mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-23 10:18:40 +00:00
Merge pull request #1764 from transloadit/allowMultipleUploads-false-and-cancel
Made sure we can upload new files if we cancel last file (allowMultipleUploads: false)
This commit is contained in:
commit
21db40bb22
2 changed files with 71 additions and 18 deletions
|
|
@ -553,7 +553,12 @@ class Uppy {
|
|||
|
||||
this.setState({
|
||||
currentUploads: updatedUploads,
|
||||
files: updatedFiles
|
||||
files: updatedFiles,
|
||||
...(
|
||||
// If this is the last file we just removed - allow new uploads!
|
||||
Object.keys(updatedFiles).length === 0 &&
|
||||
{ allowNewUpload: true }
|
||||
)
|
||||
})
|
||||
|
||||
removeUploads.forEach((uploadID) => {
|
||||
|
|
@ -653,7 +658,6 @@ class Uppy {
|
|||
})
|
||||
|
||||
this.setState({
|
||||
allowNewUpload: true,
|
||||
totalProgress: 0,
|
||||
error: null
|
||||
})
|
||||
|
|
|
|||
|
|
@ -664,27 +664,76 @@ describe('src/Core', () => {
|
|||
expect(core.getFiles().length).toEqual(0)
|
||||
})
|
||||
|
||||
it('allows no new files after upload when allowMultipleUploads: false', async () => {
|
||||
const core = new Core({ allowMultipleUploads: false })
|
||||
core.addFile({
|
||||
source: 'jest',
|
||||
name: 'foo.jpg',
|
||||
type: 'image/jpeg',
|
||||
data: new File([sampleImage], { type: 'image/jpeg' })
|
||||
})
|
||||
|
||||
await core.upload()
|
||||
|
||||
expect(() => {
|
||||
describe('with allowMultipleUploads: false', () => {
|
||||
it('allows no new files after upload', async () => {
|
||||
const core = new Core({ allowMultipleUploads: false })
|
||||
core.addFile({
|
||||
source: 'jest',
|
||||
name: '123.foo',
|
||||
name: 'foo.jpg',
|
||||
type: 'image/jpeg',
|
||||
data: new File([sampleImage], { type: 'image/jpeg' })
|
||||
})
|
||||
}).toThrow(
|
||||
/Cannot add new files: already uploading\./
|
||||
)
|
||||
|
||||
await core.upload()
|
||||
|
||||
expect(() => {
|
||||
core.addFile({
|
||||
source: 'jest',
|
||||
name: '123.foo',
|
||||
type: 'image/jpeg',
|
||||
data: new File([sampleImage], { type: 'image/jpeg' })
|
||||
})
|
||||
}).toThrow(
|
||||
/Cannot add new files: already uploading\./
|
||||
)
|
||||
})
|
||||
|
||||
it('does not allow new files after the removeFile() if some file is still present', async () => {
|
||||
const core = new Core({ allowMultipleUploads: false })
|
||||
|
||||
// adding 2 files
|
||||
const fileId1 = core.addFile({
|
||||
source: 'jest',
|
||||
name: '1.jpg',
|
||||
type: 'image/jpeg',
|
||||
data: new File([sampleImage], { type: 'image/jpeg' })
|
||||
})
|
||||
core.addFile({
|
||||
source: 'jest',
|
||||
name: '2.jpg',
|
||||
type: 'image/jpeg',
|
||||
data: new File([sampleImage], { type: 'image/jpeg' })
|
||||
})
|
||||
|
||||
// removing 1 file
|
||||
core.removeFile(fileId1)
|
||||
|
||||
await expect(core.upload()).resolves.toBeDefined()
|
||||
})
|
||||
|
||||
it('allows new files after the last removeFile()', async () => {
|
||||
const core = new Core({ allowMultipleUploads: false })
|
||||
|
||||
// adding 2 files
|
||||
const fileId1 = core.addFile({
|
||||
source: 'jest',
|
||||
name: '1.jpg',
|
||||
type: 'image/jpeg',
|
||||
data: new File([sampleImage], { type: 'image/jpeg' })
|
||||
})
|
||||
const fileId2 = core.addFile({
|
||||
source: 'jest',
|
||||
name: '2.jpg',
|
||||
type: 'image/jpeg',
|
||||
data: new File([sampleImage], { type: 'image/jpeg' })
|
||||
})
|
||||
|
||||
// removing 2 files
|
||||
core.removeFile(fileId1)
|
||||
core.removeFile(fileId2)
|
||||
|
||||
await expect(core.upload()).resolves.toBeDefined()
|
||||
})
|
||||
})
|
||||
|
||||
it('does not dedupe different files', async () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue