diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/chat_team_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/groups/create_service_spec.rb | 17 | ||||
-rw-r--r-- | spec/workers/mattermost/create_team_worker_spec.rb | 29 |
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 |