summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/models/chat_team_spec.rb2
-rw-r--r--spec/services/groups/create_service_spec.rb17
-rw-r--r--spec/workers/mattermost/create_team_worker_spec.rb29
3 files changed, 36 insertions, 12 deletions
diff --git a/spec/models/chat_team_spec.rb b/spec/models/chat_team_spec.rb
index 37a22f5cd6d..1aab161ec13 100644
--- a/spec/models/chat_team_spec.rb
+++ b/spec/models/chat_team_spec.rb
@@ -2,7 +2,7 @@ require 'spec_helper'
describe ChatTeam, type: :model do
# Associations
- it { is_expected.to belong_to(:group) }
+ it { is_expected.to belong_to(:namespace) }
# Fields
it { is_expected.to respond_to(:name) }
diff --git a/spec/services/groups/create_service_spec.rb b/spec/services/groups/create_service_spec.rb
index 14717a7455d..235fa5c5188 100644
--- a/spec/services/groups/create_service_spec.rb
+++ b/spec/services/groups/create_service_spec.rb
@@ -4,11 +4,11 @@ describe Groups::CreateService, '#execute', services: true do
let!(:user) { create(:user) }
let!(:group_params) { { path: "group_path", visibility_level: Gitlab::VisibilityLevel::PUBLIC } }
+ subject { service.execute }
+
describe 'visibility level restrictions' do
let!(:service) { described_class.new(user, group_params) }
- subject { service.execute }
-
context "create groups without restricted visibility level" do
it { is_expected.to be_persisted }
end
@@ -24,8 +24,6 @@ describe Groups::CreateService, '#execute', services: true do
let!(:group) { create(:group) }
let!(:service) { described_class.new(user, group_params.merge(parent_id: group.id)) }
- subject { service.execute }
-
context 'as group owner' do
before { group.add_owner(user) }
@@ -40,4 +38,15 @@ describe Groups::CreateService, '#execute', services: true do
end
end
end
+
+ describe 'creating a mattermost team' do
+ let!(:params) { group_params.merge(create_chat_team: true) }
+ let!(:service) { described_class.new(user, params) }
+
+ it 'queues a background job' do
+ expect(Mattermost::CreateTeamWorker).to receive(:perform_async)
+
+ subject
+ end
+ end
end
diff --git a/spec/workers/mattermost/create_team_worker_spec.rb b/spec/workers/mattermost/create_team_worker_spec.rb
index a6b87967ca2..d3230f535c2 100644
--- a/spec/workers/mattermost/create_team_worker_spec.rb
+++ b/spec/workers/mattermost/create_team_worker_spec.rb
@@ -7,15 +7,30 @@ describe Mattermost::CreateTeamWorker do
describe '.perform' do
subject { described_class.new.perform(group.id, admin.id) }
- before do
- allow_any_instance_of(Mattermost::Team).
- to receive(:create).
- with(name: "path", display_name: "name", type: "O").
- and_return('name' => 'my team', 'id' => 'sjfkdlwkdjfwlkfjwf')
+ context 'succesfull request to mattermost' do
+ before do
+ allow_any_instance_of(Mattermost::Team).
+ to receive(:create).
+ with(group, {}).
+ and_return('name' => 'my team', 'id' => 'sjfkdlwkdjfwlkfjwf')
+ end
+
+ it 'creates a new chat team' do
+ expect { subject }.to change { ChatTeam.count }.from(0).to(1)
+ end
end
- it 'creates a new chat team' do
- expect { subject }.to change { ChatTeam.count }.from(0).to(1)
+ context 'connection trouble' do
+ before do
+ allow_any_instance_of(Mattermost::Team).
+ to receive(:create).
+ with(group, {}).
+ and_raise(Mattermost::ClientError.new('Undefined error'))
+ end
+
+ it 'does not rescue the error' do
+ expect { subject }.to raise_error(Mattermost::ClientError)
+ end
end
end
end