Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb')
-rw-r--r--qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb98
1 files changed, 98 insertions, 0 deletions
diff --git a/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb
new file mode 100644
index 00000000000..2ba368ff353
--- /dev/null
+++ b/qa/qa/specs/features/browser_ui/9_data_stores/cells/demo2_spec.rb
@@ -0,0 +1,98 @@
+# frozen_string_literal: true
+
+# version of the login test that only runs against GDK
+# implements functionality in https://gitlab.com/gitlab-org/gitlab/-/issues/415207
+
+module QA
+ RSpec.describe 'Data Stores', :skip_live_env, :requires_admin, product_group: :tenant_scale do
+ describe 'Demo 2' do
+ let(:cell1_url) { ENV.fetch('CELL1_URL', 'http://gdk.test:3000/') }
+ let(:cell2_url) { ENV.fetch('CELL2_URL', 'http://gdk.test:3001/') }
+ let(:cell1_group_name) { "cell1-group-#{SecureRandom.hex(8)}" }
+ let(:cell2_group_name) { "cell2-group-#{SecureRandom.hex(8)}" }
+
+ before do
+ ENV['PERSONAL_ACCESS_TOKENS_DISABLED'] = 'true' # force off creating by api so walk through demo
+ end
+
+ it('walkthrough',
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/434421',
+ only: { condition: -> { !Runtime::Env.running_in_ci? } }
+ ) do
+ # Sign in Cell 1
+ Runtime::Scenario.define(:gitlab_address, cell1_url)
+ Flow::Login.sign_in
+ Page::Main::Menu.perform(&:go_to_groups)
+ # Create Group on Cell 1
+ Resource::Group.new.fabricate_group!(group_name: cell1_group_name)
+
+ # Cell 1 Group exists on Cell 1
+ Page::Group::Show.perform do |group_show|
+ # Ensure that the group was actually created
+ group_show.wait_until(sleep_interval: 1) do
+ expect(group_show).to have_text(cell1_group_name)
+ end
+ end
+
+ # Visit Cell 2
+ page.visit cell2_url
+ Runtime::Scenario.define(:gitlab_address, cell2_url)
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group does not show
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).not_to have_group(cell1_group_name)
+ end
+ end
+
+ # Create Group on Cell 2
+ Resource::Group.new.fabricate_group!(group_name: cell2_group_name)
+
+ # Cell 2 Group exists on Cell 2
+ Page::Group::Show.perform do |group_show|
+ # Ensure that the group was actually created
+ group_show.wait_until(sleep_interval: 1) do
+ expect(group_show).to have_text(cell2_group_name)
+ end
+ end
+
+ # Visit Cell 1
+ page.visit cell1_url
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group appears
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).to have_group(cell1_group_name)
+ end
+ end
+
+ # Cell 2 group does not appear
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).not_to have_group(cell2_group_name)
+ end
+ end
+
+ # Visit Cell 2
+ page.visit cell2_url
+ Page::Main::Menu.perform(&:go_to_groups)
+
+ # Cell 1 group does not shows
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).not_to have_group(cell1_group_name)
+ end
+ end
+
+ # Cell 2 group does show
+ Page::Dashboard::Groups.perform do |group_dashboard|
+ group_dashboard.wait_until(sleep_interval: 1) do
+ expect(group_dashboard).to have_group(cell2_group_name)
+ end
+ end
+ end
+ end
+ end
+end