diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-02-08 01:12:41 -0800 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-02-08 01:12:41 -0800 |
commit | 0a34f2dcb562098c481140246f7ac22683b38d76 (patch) | |
tree | 9b3efbb8fc6874cf735120644de111387dd24e42 /spec | |
parent | fa3a7ef0379ec67706a8923a68dec99082a0face (diff) | |
parent | d56c2a9bc58091f906b8d0001600bad448847d4f (diff) | |
download | gitlab-ce-0a34f2dcb562098c481140246f7ac22683b38d76.tar.gz |
Merge pull request #8580 from j0k3r/asana
Add Asana service
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/asana_service_spec.rb | 60 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 1 |
2 files changed, 61 insertions, 0 deletions
diff --git a/spec/models/asana_service_spec.rb b/spec/models/asana_service_spec.rb new file mode 100644 index 00000000000..6bebb76f8c7 --- /dev/null +++ b/spec/models/asana_service_spec.rb @@ -0,0 +1,60 @@ +# == Schema Information +# +# Table name: services +# +# id :integer not null, primary key +# type :string(255) +# title :string(255) +# project_id :integer not null +# created_at :datetime +# updated_at :datetime +# active :boolean default(FALSE), not null +# properties :text +# + +require 'spec_helper' + +describe AsanaService, models: true do + describe 'Associations' do + it { should belong_to :project } + it { should have_one :service_hook } + end + + describe 'Validations' do + context 'active' do + before do + subject.active = true + end + + it { should validate_presence_of :api_key } + end + end + + describe 'Execute' do + let(:user) { create(:user) } + let(:project) { create(:project) } + + before do + @asana = AsanaService.new + @asana.stub( + project: project, + project_id: project.id, + service_hook: true, + api_key: 'verySecret', + restrict_to_branch: 'master' + ) + end + + it 'should call Asana service to created a story' do + Asana::Task.should_receive(:find).with('123456').once + + @asana.check_commit('related to #123456', 'pushed') + end + + it 'should call Asana service to created a story and close a task' do + Asana::Task.should_receive(:find).with('456789').twice + + @asana.check_commit('fix #456789', 'pushed') + end + end +end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 4669a9fd87d..e2197420018 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -51,6 +51,7 @@ describe Project do it { should have_one(:forked_project_link).dependent(:destroy) } it { should have_one(:slack_service).dependent(:destroy) } it { should have_one(:pushover_service).dependent(:destroy) } + it { should have_one(:asana_service).dependent(:destroy) } end describe 'Mass assignment' do |