summaryrefslogtreecommitdiff
path: root/spec/graphql/resolvers/ci/runners_resolver_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/graphql/resolvers/ci/runners_resolver_spec.rb')
-rw-r--r--spec/graphql/resolvers/ci/runners_resolver_spec.rb66
1 files changed, 60 insertions, 6 deletions
diff --git a/spec/graphql/resolvers/ci/runners_resolver_spec.rb b/spec/graphql/resolvers/ci/runners_resolver_spec.rb
index 006d6785506..5ac15d5729f 100644
--- a/spec/graphql/resolvers/ci/runners_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/runners_resolver_spec.rb
@@ -10,15 +10,15 @@ RSpec.describe Resolvers::Ci::RunnersResolver do
let_it_be(:project) { create(:project, :repository, :public) }
let_it_be(:inactive_project_runner) do
- create(:ci_runner, :project, projects: [project], active: false, contacted_at: 1.minute.ago, tag_list: %w(project_runner))
+ create(:ci_runner, :project, projects: [project], description: 'inactive project runner', token: 'abcdef', active: false, contacted_at: 1.minute.ago, tag_list: %w(project_runner))
end
let_it_be(:offline_project_runner) do
- create(:ci_runner, :project, projects: [project], contacted_at: 1.day.ago, tag_list: %w(project_runner active_runner))
+ create(:ci_runner, :project, projects: [project], description: 'offline project runner', token: 'defghi', contacted_at: 1.day.ago, tag_list: %w(project_runner active_runner))
end
- let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group], contacted_at: 1.second.ago) }
- let_it_be(:instance_runner) { create(:ci_runner, :instance, contacted_at: 2.minutes.ago, tag_list: %w(instance_runner active_runner)) }
+ let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group], token: 'mnopqr', description: 'group runner', contacted_at: 1.second.ago) }
+ let_it_be(:instance_runner) { create(:ci_runner, :instance, description: 'shared runner', token: 'stuvxz', contacted_at: 2.minutes.ago, tag_list: %w(instance_runner active_runner)) }
describe '#resolve' do
subject { resolve(described_class, ctx: { current_user: user }, args: args).items.to_a }
@@ -27,6 +27,14 @@ RSpec.describe Resolvers::Ci::RunnersResolver do
{}
end
+ context 'when the user cannot see runners' do
+ let(:user) { create(:user) }
+
+ it 'returns no runners' do
+ is_expected.to be_empty
+ end
+ end
+
context 'without sort' do
it 'returns all the runners' do
is_expected.to contain_exactly(inactive_project_runner, offline_project_runner, group_runner, instance_runner)
@@ -42,13 +50,29 @@ RSpec.describe Resolvers::Ci::RunnersResolver do
it { is_expected.to eq([offline_project_runner, instance_runner, inactive_project_runner, group_runner]) }
end
- context "set to :created_date" do
+ context "set to :contacted_desc" do
+ let(:args) do
+ { sort: :contacted_desc }
+ end
+
+ it { is_expected.to eq([offline_project_runner, instance_runner, inactive_project_runner, group_runner].reverse) }
+ end
+
+ context "set to :created_at_desc" do
let(:args) do
- { sort: :created_date }
+ { sort: :created_at_desc }
end
it { is_expected.to eq([instance_runner, group_runner, offline_project_runner, inactive_project_runner]) }
end
+
+ context "set to :created_at_asc" do
+ let(:args) do
+ { sort: :created_at_asc }
+ end
+
+ it { is_expected.to eq([instance_runner, group_runner, offline_project_runner, inactive_project_runner].reverse) }
+ end
end
context 'when type is filtered' do
@@ -132,5 +156,35 @@ RSpec.describe Resolvers::Ci::RunnersResolver do
end
end
end
+
+ context 'when text is filtered' do
+ let(:args) do
+ { search: search_term }
+ end
+
+ context 'to "project"' do
+ let(:search_term) { 'project' }
+
+ it 'returns both project runners' do
+ is_expected.to contain_exactly(inactive_project_runner, offline_project_runner)
+ end
+ end
+
+ context 'to "group"' do
+ let(:search_term) { 'group' }
+
+ it 'returns group runner' do
+ is_expected.to contain_exactly(group_runner)
+ end
+ end
+
+ context 'to "defghi"' do
+ let(:search_term) { 'defghi' }
+
+ it 'returns runners containing term in token' do
+ is_expected.to contain_exactly(offline_project_runner)
+ end
+ end
+ end
end
end