Commit b9bcd3ad authored by Jacques Erasmus's avatar Jacques Erasmus

Merge branch '332734-fix-errors-and-drag-drop-in-uploadblobmodal-component' into 'master'

Fix errors and drag&drop in UploadBlobModal component

See merge request gitlab-org/gitlab!71082
parents 46123116 32563ed7
...@@ -220,6 +220,7 @@ export default { ...@@ -220,6 +220,7 @@ export default {
class="gl-h-200! gl-mb-4" class="gl-h-200! gl-mb-4"
single-file-selection single-file-selection
:valid-file-mimetypes="$options.validFileMimetypes" :valid-file-mimetypes="$options.validFileMimetypes"
:is-file-valid="() => true"
@change="setFile" @change="setFile"
> >
<div <div
......
...@@ -45,7 +45,7 @@ export default { ...@@ -45,7 +45,7 @@ export default {
data() { data() {
return { return {
dragCounter: 0, dragCounter: 0,
isDragDataValid: false, isDragDataValid: true,
}; };
}, },
computed: { computed: {
......
...@@ -19,13 +19,15 @@ RSpec.describe 'Projects > Files > User uploads files' do ...@@ -19,13 +19,15 @@ RSpec.describe 'Projects > Files > User uploads files' do
wait_for_requests wait_for_requests
end end
include_examples 'it uploads and commits a new text file' [true, false].each do |value|
include_examples 'it uploads and commits a new text file', drop: value
include_examples 'it uploads and commits a new image file' include_examples 'it uploads and commits a new image file', drop: value
include_examples 'it uploads and commits a new pdf file' include_examples 'it uploads and commits a new pdf file', drop: value
include_examples 'it uploads a file to a sub-directory' include_examples 'it uploads a file to a sub-directory', drop: value
end
end end
context 'when a user does not have write access' do context 'when a user does not have write access' do
...@@ -35,6 +37,8 @@ RSpec.describe 'Projects > Files > User uploads files' do ...@@ -35,6 +37,8 @@ RSpec.describe 'Projects > Files > User uploads files' do
visit(project_tree_path(project2)) visit(project_tree_path(project2))
end end
include_examples 'it uploads and commits a new file to a forked project' [true, false].each do |value|
include_examples 'it uploads and commits a new file to a forked project', drop: value
end
end end
end end
...@@ -21,13 +21,15 @@ RSpec.describe 'Projects > Show > User uploads files' do ...@@ -21,13 +21,15 @@ RSpec.describe 'Projects > Show > User uploads files' do
wait_for_requests wait_for_requests
end end
include_examples 'it uploads and commits a new text file' [true, false].each do |value|
include_examples 'it uploads and commits a new text file', drop: value
include_examples 'it uploads and commits a new image file' include_examples 'it uploads and commits a new image file', drop: value
include_examples 'it uploads and commits a new pdf file' include_examples 'it uploads and commits a new pdf file', drop: value
include_examples 'it uploads a file to a sub-directory' include_examples 'it uploads a file to a sub-directory', drop: value
end
end end
context 'when a user does not have write access' do context 'when a user does not have write access' do
...@@ -37,7 +39,9 @@ RSpec.describe 'Projects > Show > User uploads files' do ...@@ -37,7 +39,9 @@ RSpec.describe 'Projects > Show > User uploads files' do
visit(project_path(project2)) visit(project_path(project2))
end end
include_examples 'it uploads and commits a new file to a forked project' [true, false].each do |value|
include_examples 'it uploads and commits a new file to a forked project', drop: value
end
end end
context 'when in the empty_repo_upload experiment' do context 'when in the empty_repo_upload experiment' do
...@@ -50,13 +54,17 @@ RSpec.describe 'Projects > Show > User uploads files' do ...@@ -50,13 +54,17 @@ RSpec.describe 'Projects > Show > User uploads files' do
context 'with an empty repo' do context 'with an empty repo' do
let(:project) { create(:project, :empty_repo, creator: user) } let(:project) { create(:project, :empty_repo, creator: user) }
include_examples 'uploads and commits a new text file via "upload file" button' [true, false].each do |value|
include_examples 'uploads and commits a new text file via "upload file" button', drop: value
end
end end
context 'with a nonempty repo' do context 'with a nonempty repo' do
let(:project) { create(:project, :repository, creator: user) } let(:project) { create(:project, :repository, creator: user) }
include_examples 'uploads and commits a new text file via "upload file" button' [true, false].each do |value|
include_examples 'uploads and commits a new text file via "upload file" button', drop: value
end
end end
end end
end end
...@@ -45,6 +45,7 @@ exports[`Upload dropzone component correctly overrides description and drop mess ...@@ -45,6 +45,7 @@ exports[`Upload dropzone component correctly overrides description and drop mess
> >
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style="display: none;"
> >
<h3 <h3
class="" class=""
...@@ -61,7 +62,6 @@ exports[`Upload dropzone component correctly overrides description and drop mess ...@@ -61,7 +62,6 @@ exports[`Upload dropzone component correctly overrides description and drop mess
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style="display: none;"
> >
<h3 <h3
class="" class=""
...@@ -146,7 +146,6 @@ exports[`Upload dropzone component when dragging renders correct template when d ...@@ -146,7 +146,6 @@ exports[`Upload dropzone component when dragging renders correct template when d
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style=""
> >
<h3 <h3
class="" class=""
...@@ -231,7 +230,6 @@ exports[`Upload dropzone component when dragging renders correct template when d ...@@ -231,7 +230,6 @@ exports[`Upload dropzone component when dragging renders correct template when d
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style=""
> >
<h3 <h3
class="" class=""
...@@ -299,6 +297,7 @@ exports[`Upload dropzone component when dragging renders correct template when d ...@@ -299,6 +297,7 @@ exports[`Upload dropzone component when dragging renders correct template when d
> >
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style=""
> >
<h3 <h3
class="" class=""
...@@ -383,6 +382,7 @@ exports[`Upload dropzone component when dragging renders correct template when d ...@@ -383,6 +382,7 @@ exports[`Upload dropzone component when dragging renders correct template when d
> >
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style=""
> >
<h3 <h3
class="" class=""
...@@ -467,6 +467,7 @@ exports[`Upload dropzone component when dragging renders correct template when d ...@@ -467,6 +467,7 @@ exports[`Upload dropzone component when dragging renders correct template when d
> >
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style=""
> >
<h3 <h3
class="" class=""
...@@ -551,6 +552,7 @@ exports[`Upload dropzone component when no slot provided renders default dropzon ...@@ -551,6 +552,7 @@ exports[`Upload dropzone component when no slot provided renders default dropzon
> >
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style="display: none;"
> >
<h3 <h3
class="" class=""
...@@ -567,7 +569,6 @@ exports[`Upload dropzone component when no slot provided renders default dropzon ...@@ -567,7 +569,6 @@ exports[`Upload dropzone component when no slot provided renders default dropzon
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style="display: none;"
> >
<h3 <h3
class="" class=""
...@@ -603,6 +604,7 @@ exports[`Upload dropzone component when slot provided renders dropzone with slot ...@@ -603,6 +604,7 @@ exports[`Upload dropzone component when slot provided renders dropzone with slot
> >
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style="display: none;"
> >
<h3 <h3
class="" class=""
...@@ -619,7 +621,6 @@ exports[`Upload dropzone component when slot provided renders dropzone with slot ...@@ -619,7 +621,6 @@ exports[`Upload dropzone component when slot provided renders dropzone with slot
<div <div
class="mw-50 gl-text-center" class="mw-50 gl-text-center"
style="display: none;"
> >
<h3 <h3
class="" class=""
......
# frozen_string_literal: true # frozen_string_literal: true
RSpec.shared_examples 'it uploads and commits a new text file' do RSpec.shared_examples 'it uploads and commits a new text file' do |drop: false|
it 'uploads and commits a new text file', :js do it 'uploads and commits a new text file', :js do
find('.add-to-tree').click find('.add-to-tree').click
...@@ -10,7 +10,11 @@ RSpec.shared_examples 'it uploads and commits a new text file' do ...@@ -10,7 +10,11 @@ RSpec.shared_examples 'it uploads and commits a new text file' do
wait_for_requests wait_for_requests
end end
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true) if drop
find(".upload-dropzone-card").drop(File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'))
else
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true)
end
page.within('#modal-upload-blob') do page.within('#modal-upload-blob') do
fill_in(:commit_message, with: 'New commit message') fill_in(:commit_message, with: 'New commit message')
...@@ -32,7 +36,7 @@ RSpec.shared_examples 'it uploads and commits a new text file' do ...@@ -32,7 +36,7 @@ RSpec.shared_examples 'it uploads and commits a new text file' do
end end
end end
RSpec.shared_examples 'it uploads and commits a new image file' do RSpec.shared_examples 'it uploads and commits a new image file' do |drop: false|
it 'uploads and commits a new image file', :js do it 'uploads and commits a new image file', :js do
find('.add-to-tree').click find('.add-to-tree').click
...@@ -42,7 +46,11 @@ RSpec.shared_examples 'it uploads and commits a new image file' do ...@@ -42,7 +46,11 @@ RSpec.shared_examples 'it uploads and commits a new image file' do
wait_for_requests wait_for_requests
end end
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'logo_sample.svg'), make_visible: true) if drop
find(".upload-dropzone-card").drop(File.join(Rails.root, 'spec', 'fixtures', 'logo_sample.svg'))
else
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'logo_sample.svg'), make_visible: true)
end
page.within('#modal-upload-blob') do page.within('#modal-upload-blob') do
fill_in(:commit_message, with: 'New commit message') fill_in(:commit_message, with: 'New commit message')
...@@ -58,7 +66,7 @@ RSpec.shared_examples 'it uploads and commits a new image file' do ...@@ -58,7 +66,7 @@ RSpec.shared_examples 'it uploads and commits a new image file' do
end end
end end
RSpec.shared_examples 'it uploads and commits a new pdf file' do RSpec.shared_examples 'it uploads and commits a new pdf file' do |drop: false|
it 'uploads and commits a new pdf file', :js do it 'uploads and commits a new pdf file', :js do
find('.add-to-tree').click find('.add-to-tree').click
...@@ -68,7 +76,11 @@ RSpec.shared_examples 'it uploads and commits a new pdf file' do ...@@ -68,7 +76,11 @@ RSpec.shared_examples 'it uploads and commits a new pdf file' do
wait_for_requests wait_for_requests
end end
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'git-cheat-sheet.pdf'), make_visible: true) if drop
find(".upload-dropzone-card").drop(File.join(Rails.root, 'spec', 'fixtures', 'git-cheat-sheet.pdf'))
else
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'git-cheat-sheet.pdf'), make_visible: true)
end
page.within('#modal-upload-blob') do page.within('#modal-upload-blob') do
fill_in(:commit_message, with: 'New commit message') fill_in(:commit_message, with: 'New commit message')
...@@ -84,7 +96,7 @@ RSpec.shared_examples 'it uploads and commits a new pdf file' do ...@@ -84,7 +96,7 @@ RSpec.shared_examples 'it uploads and commits a new pdf file' do
end end
end end
RSpec.shared_examples 'it uploads and commits a new file to a forked project' do RSpec.shared_examples 'it uploads and commits a new file to a forked project' do |drop: false|
let(:fork_message) do let(:fork_message) do
"You're not allowed to make changes to this project directly. "\ "You're not allowed to make changes to this project directly. "\
"A fork of this project has been created that you can make changes in, so you can submit a merge request." "A fork of this project has been created that you can make changes in, so you can submit a merge request."
...@@ -100,7 +112,12 @@ RSpec.shared_examples 'it uploads and commits a new file to a forked project' do ...@@ -100,7 +112,12 @@ RSpec.shared_examples 'it uploads and commits a new file to a forked project' do
find('.add-to-tree').click find('.add-to-tree').click
click_link('Upload file') click_link('Upload file')
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true)
if drop
find(".upload-dropzone-card").drop(File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'))
else
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true)
end
page.within('#modal-upload-blob') do page.within('#modal-upload-blob') do
fill_in(:commit_message, with: 'New commit message') fill_in(:commit_message, with: 'New commit message')
...@@ -123,7 +140,7 @@ RSpec.shared_examples 'it uploads and commits a new file to a forked project' do ...@@ -123,7 +140,7 @@ RSpec.shared_examples 'it uploads and commits a new file to a forked project' do
end end
end end
RSpec.shared_examples 'it uploads a file to a sub-directory' do RSpec.shared_examples 'it uploads a file to a sub-directory' do |drop: false|
it 'uploads a file to a sub-directory', :js do it 'uploads a file to a sub-directory', :js do
click_link 'files' click_link 'files'
...@@ -133,7 +150,12 @@ RSpec.shared_examples 'it uploads a file to a sub-directory' do ...@@ -133,7 +150,12 @@ RSpec.shared_examples 'it uploads a file to a sub-directory' do
find('.add-to-tree').click find('.add-to-tree').click
click_link('Upload file') click_link('Upload file')
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true)
if drop
find(".upload-dropzone-card").drop(File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'))
else
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true)
end
page.within('#modal-upload-blob') do page.within('#modal-upload-blob') do
fill_in(:commit_message, with: 'New commit message') fill_in(:commit_message, with: 'New commit message')
...@@ -150,11 +172,15 @@ RSpec.shared_examples 'it uploads a file to a sub-directory' do ...@@ -150,11 +172,15 @@ RSpec.shared_examples 'it uploads a file to a sub-directory' do
end end
end end
RSpec.shared_examples 'uploads and commits a new text file via "upload file" button' do RSpec.shared_examples 'uploads and commits a new text file via "upload file" button' do |drop: false|
it 'uploads and commits a new text file via "upload file" button', :js do it 'uploads and commits a new text file via "upload file" button', :js do
find('[data-testid="upload-file-button"]').click find('[data-testid="upload-file-button"]').click
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true) if drop
find(".upload-dropzone-card").drop(File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'))
else
attach_file('upload_file', File.join(Rails.root, 'spec', 'fixtures', 'doc_sample.txt'), make_visible: true)
end
page.within('#details-modal-upload-blob') do page.within('#details-modal-upload-blob') do
fill_in(:commit_message, with: 'New commit message') fill_in(:commit_message, with: 'New commit message')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment