Skip to content
代码片段 群组 项目
未验证 提交 d678039a 编辑于 作者: Peter Leitzen's avatar Peter Leitzen 提交者: GitLab
浏览文件

Merge branch 'caw-improve-smoke-test-suite-and-specs' into 'master'

Improve remote dev smoke test script and specs

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/147415



Merged-by: default avatarPeter Leitzen <pleitzen@gitlab.com>
Approved-by: default avatarPeter Leitzen <pleitzen@gitlab.com>
Approved-by: default avatarVishal Tak <vtak@gitlab.com>
Reviewed-by: default avatarPeter Leitzen <pleitzen@gitlab.com>
Co-authored-by: default avatarChad Woolley <cwoolley@gitlab.com>
No related branches found
No related tags found
无相关合并请求
显示
51 个添加36 个删除
...@@ -73,6 +73,7 @@ ...@@ -73,6 +73,7 @@
context 'when workspaces dropdown group is visible' do context 'when workspaces dropdown group is visible' do
before do before do
visit subject visit subject
wait_for_requests
click_button 'Edit' click_button 'Edit'
end end
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../fast_spec_helper' require_relative '../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::AgentConfig::Main, feature_category: :remote_development do RSpec.describe RemoteDevelopment::AgentConfig::Main, :rd_fast, feature_category: :remote_development do
include RemoteDevelopment::RailwayOrientedProgrammingHelpers include RemoteDevelopment::RailwayOrientedProgrammingHelpers
let(:value) { {} } let(:value) { {} }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative 'fast_spec_helper' require_relative 'rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Message, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Message, :rd_fast, feature_category: :remote_development do
describe '#==' do describe '#==' do
it 'implements equality' do it 'implements equality' do
expect(described_class.new({ a: 1 })).to eq(described_class.new(a: 1)) expect(described_class.new({ a: 1 })).to eq(described_class.new(a: 1))
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative 'fast_spec_helper' require_relative 'rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::MessageSupport, feature_category: :remote_development do RSpec.describe RemoteDevelopment::MessageSupport, :rd_fast, feature_category: :remote_development do
let(:object) { Object.new.extend(described_class) } let(:object) { Object.new.extend(described_class) }
describe '.generate_error_response_from_message' do describe '.generate_error_response_from_message' do
......
...@@ -25,6 +25,20 @@ ...@@ -25,6 +25,20 @@
require 'gitlab/rspec/next_instance_of' require 'gitlab/rspec/next_instance_of'
RSpec.configure do |config| RSpec.configure do |config|
# Ensure that all specs which require this fast_spec_helper have the `:fast` tag at the top-level describe
config.after(:suite) do
RSpec.world.example_groups.each do |example_group|
# Check only top-level describes
next unless example_group.metadata[:parent_example_group].nil?
unless example_group.metadata[:rd_fast]
raise "Top-level describe blocks must have the `:rd_fast` tag when `rd_fast_spec_helper` is required. " \
"It is missing on example group: #{example_group.description}"
end
end
end
# Set up rspec features required by the remote development specs
config.include NextInstanceOf config.include NextInstanceOf
config.mock_with :rspec do |mocks| config.mock_with :rspec do |mocks|
mocks.verify_doubled_constant_names = false mocks.verify_doubled_constant_names = false
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../fast_spec_helper' require_relative '../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Settings::DefaultsInitializer, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Settings::DefaultsInitializer, :rd_fast, feature_category: :remote_development do
let(:value) { {} } let(:value) { {} }
subject(:returned_value) do subject(:returned_value) do
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative "../fast_spec_helper" require_relative "../rd_fast_spec_helper"
RSpec.describe RemoteDevelopment::Settings::EnvVarReader, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Settings::EnvVarReader, :rd_fast, feature_category: :remote_development do
include ResultMatchers include ResultMatchers
let(:default_setting_value) { 42 } let(:default_setting_value) { 42 }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../fast_spec_helper' require_relative '../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Settings::Main, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Settings::Main, :rd_fast, feature_category: :remote_development do
include RemoteDevelopment::RailwayOrientedProgrammingHelpers include RemoteDevelopment::RailwayOrientedProgrammingHelpers
let(:value) { {} } let(:value) { {} }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative 'fast_spec_helper' require_relative 'rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::UnmatchedResultError, feature_category: :remote_development do RSpec.describe RemoteDevelopment::UnmatchedResultError, :rd_fast, feature_category: :remote_development do
let(:unmatched_message_class) { stub_const('UnmatchedMessage', Class.new(RemoteDevelopment::Message)) } let(:unmatched_message_class) { stub_const('UnmatchedMessage', Class.new(RemoteDevelopment::Message)) }
let(:unmatched_message) { unmatched_message_class.new } let(:unmatched_message) { unmatched_message_class.new }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative "../../fast_spec_helper" require_relative "../../rd_fast_spec_helper"
RSpec.describe RemoteDevelopment::Workspaces::Create::DevfileFlattener, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Create::DevfileFlattener, :rd_fast, feature_category: :remote_development do
include_context 'with remote development shared fixtures' include_context 'with remote development shared fixtures'
let(:devfile_yaml) { example_devfile } let(:devfile_yaml) { example_devfile }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../fast_spec_helper' require_relative '../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Create::Main, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Create::Main, :rd_fast, feature_category: :remote_development do
include RemoteDevelopment::RailwayOrientedProgrammingHelpers include RemoteDevelopment::RailwayOrientedProgrammingHelpers
let(:value) { {} } let(:value) { {} }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../fast_spec_helper' require_relative '../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Create::ToolsComponentInjector, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Create::ToolsComponentInjector, :rd_fast, feature_category: :remote_development do
include_context 'with remote development shared fixtures' include_context 'with remote development shared fixtures'
let(:input_processed_devfile_name) { 'example.flattened-devfile.yaml' } let(:input_processed_devfile_name) { 'example.flattened-devfile.yaml' }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../fast_spec_helper' require_relative '../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Create::VolumeDefiner, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Create::VolumeDefiner, :rd_fast, feature_category: :remote_development do
let(:value) { { params: 1 } } let(:value) { { params: 1 } }
subject(:returned_value) do subject(:returned_value) do
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative "../../fast_spec_helper" require_relative "../../rd_fast_spec_helper"
RSpec.describe ::RemoteDevelopment::Workspaces::Create::WorkspaceVariables, RSpec.describe ::RemoteDevelopment::Workspaces::Create::WorkspaceVariables, :rd_fast,
feature_category: :remote_development do feature_category: :remote_development do
let(:name) { "name" } let(:name) { "name" }
let(:dns_zone) { "example.dns.zone" } let(:dns_zone) { "example.dns.zone" }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../../fast_spec_helper' require_relative '../../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ActualStateCalculator, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ActualStateCalculator, :rd_fast, feature_category: :remote_development do
include_context 'with remote development shared fixtures' include_context 'with remote development shared fixtures'
describe '.calculate_actual_state' do describe '.calculate_actual_state' do
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../../fast_spec_helper' require_relative '../../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::AgentInfo, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::AgentInfo, :rd_fast, feature_category: :remote_development do
let(:agent_info_constructor_args) do let(:agent_info_constructor_args) do
{ {
name: 'name', name: 'name',
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../../fast_spec_helper' require_relative '../../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::AgentInfosObserver, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::AgentInfosObserver, :rd_fast, feature_category: :remote_development do
let(:agent) { instance_double("Clusters::Agent", id: 1) } let(:agent) { instance_double("Clusters::Agent", id: 1) }
let(:update_type) { RemoteDevelopment::Workspaces::Reconcile::UpdateTypes::PARTIAL } let(:update_type) { RemoteDevelopment::Workspaces::Reconcile::UpdateTypes::PARTIAL }
let(:logger) { instance_double(::Logger) } let(:logger) { instance_double(::Logger) }
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../../fast_spec_helper' require_relative '../../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ParamsExtractor, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ParamsExtractor, :rd_fast, feature_category: :remote_development do
let(:agent) { instance_double("Clusters::Agent") } let(:agent) { instance_double("Clusters::Agent") }
let(:original_params) do let(:original_params) do
{ {
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../../fast_spec_helper' require_relative '../../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ParamsToInfosConverter, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ParamsToInfosConverter, :rd_fast, feature_category: :remote_development do
let(:workspace_agent_info_hashes_from_params) do let(:workspace_agent_info_hashes_from_params) do
[ [
{ {
......
# frozen_string_literal: true # frozen_string_literal: true
require_relative '../../../fast_spec_helper' require_relative '../../../rd_fast_spec_helper'
RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ParamsValidator, feature_category: :remote_development do RSpec.describe RemoteDevelopment::Workspaces::Reconcile::Input::ParamsValidator, :rd_fast, feature_category: :remote_development do
include ResultMatchers include ResultMatchers
let(:update_type) { "partial" } let(:update_type) { "partial" }
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册