Commit ccb66e2f authored by Sanad Liaquat's avatar Sanad Liaquat

Merge branch 'tomi/create-test/modify-design' into 'master'

E2E test for modifying a design

See merge request gitlab-org/gitlab!43672
parents 3683a3cb 3e0e0a97
...@@ -132,7 +132,13 @@ export default { ...@@ -132,7 +132,13 @@ export default {
> >
<div v-if="icon.name" data-testid="designEvent" class="design-event gl-absolute"> <div v-if="icon.name" data-testid="designEvent" class="design-event gl-absolute">
<span :title="icon.tooltip" :aria-label="icon.tooltip"> <span :title="icon.tooltip" :aria-label="icon.tooltip">
<gl-icon :name="icon.name" :size="18" :class="icon.classes" /> <gl-icon
:name="icon.name"
:size="18"
:class="icon.classes"
data-qa-selector="design_status_icon"
:data-qa-status="icon.name"
/>
</span> </span>
</div> </div>
<gl-intersection-observer @appear="onAppear"> <gl-intersection-observer @appear="onAppear">
......
...@@ -30,6 +30,7 @@ module QA ...@@ -30,6 +30,7 @@ module QA
view 'app/assets/javascripts/design_management/components/list/item.vue' do view 'app/assets/javascripts/design_management/components/list/item.vue' do
element :design_file_name element :design_file_name
element :design_image element :design_image
element :design_status_icon
end end
view 'app/assets/javascripts/design_management/pages/index.vue' do view 'app/assets/javascripts/design_management/pages/index.vue' do
...@@ -79,6 +80,11 @@ module QA ...@@ -79,6 +80,11 @@ module QA
raise ElementNotFound, %Q(Attempted to attach design "#{filename}" but it did not appear) unless found raise ElementNotFound, %Q(Attempted to attach design "#{filename}" but it did not appear) unless found
end end
def update_design(filename)
filepath = ::File.join('qa', 'fixtures', 'designs', 'update', filename)
add_design(filepath)
end
def click_design(filename) def click_design(filename)
click_element(:design_file_name, text: filename) click_element(:design_file_name, text: filename)
end end
...@@ -101,6 +107,14 @@ module QA ...@@ -101,6 +107,14 @@ module QA
def has_design?(filename) def has_design?(filename)
has_element?(:design_file_name, text: filename) has_element?(:design_file_name, text: filename)
end end
def has_created_icon?
has_element?(:design_status_icon, status: 'file-addition-solid')
end
def has_modified_icon?
has_element?(:design_status_icon, status: 'file-modified-solid')
end
end end
end end
end end
......
...@@ -3,18 +3,15 @@ ...@@ -3,18 +3,15 @@
module QA module QA
module Resource module Resource
class Design < Base class Design < Base
attr_reader :id
attr_accessor :filename
attribute :issue do attribute :issue do
Issue.fabricate_via_api! Issue.fabricate_via_api!
end end
attribute :filepath do
::File.absolute_path(::File.join('spec', 'fixtures', @filename))
end
attribute :id
attribute :filename
def initialize def initialize
@update = false
@filename = 'banana_sample.gif' @filename = 'banana_sample.gif'
end end
...@@ -26,6 +23,12 @@ module QA ...@@ -26,6 +23,12 @@ module QA
issue.add_design(filepath) issue.add_design(filepath)
end end
end end
private
def filepath
::File.absolute_path(::File.join('qa', 'fixtures', 'designs', @filename))
end
end end
end end
end end
...@@ -41,7 +41,7 @@ module QA ...@@ -41,7 +41,7 @@ module QA
context 'when using attachments in comments', :object_storage do context 'when using attachments in comments', :object_storage do
let(:gif_file_name) { 'banana_sample.gif' } let(:gif_file_name) { 'banana_sample.gif' }
let(:file_to_attach) do let(:file_to_attach) do
File.absolute_path(File.join('spec', 'fixtures', gif_file_name)) File.absolute_path(File.join('qa', 'fixtures', 'designs', gif_file_name))
end end
before do before do
......
...@@ -5,7 +5,7 @@ module QA ...@@ -5,7 +5,7 @@ module QA
context 'Design Management' do context 'Design Management' do
let(:issue) { Resource::Issue.fabricate_via_api! } let(:issue) { Resource::Issue.fabricate_via_api! }
let(:design_filename) { 'banana_sample.gif' } let(:design_filename) { 'banana_sample.gif' }
let(:design) { File.absolute_path(File.join('spec', 'fixtures', design_filename)) } let(:design) { File.absolute_path(File.join('qa', 'fixtures', 'designs', design_filename)) }
let(:annotation) { "This design is great!" } let(:annotation) { "This design is great!" }
before do before do
......
# frozen_string_literal: true
module QA
RSpec.describe 'Create' do
context 'Design Management' do
let(:design) do
Resource::Design.fabricate! do |design|
design.filename = 'tanuki.jpg'
end
end
before do
Flow::Login.sign_in
end
it 'user adds a design and modifies it', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/273' do
design.issue.visit!
Page::Project::Issue::Show.perform do |issue|
expect(issue).to have_created_icon
end
Page::Project::Issue::Show.perform do |issue|
issue.update_design(design.filename)
expect(issue).to have_modified_icon
end
end
end
end
end
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
module QA module QA
RSpec.describe 'Geo', :orchestrated, :geo do RSpec.describe 'Geo', :orchestrated, :geo do
describe 'GitLab Geo attachment replication' do describe 'GitLab Geo attachment replication' do
let(:file_to_attach) { File.absolute_path(File.join('spec', 'fixtures', 'banana_sample.gif')) } let(:file_to_attach) { File.absolute_path(File.join('qa', 'fixtures', 'designs', 'banana_sample.gif')) }
it 'user uploads attachment to the primary node', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/692' do it 'user uploads attachment to the primary node', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/692' do
QA::Flow::Login.while_signed_in(address: :geo_primary) do QA::Flow::Login.while_signed_in(address: :geo_primary) do
......
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