Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions spec/cassettes/12/job/delete_invalid.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 30 additions & 0 deletions spec/cassettes/12/job/delete_valid.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 52 additions & 0 deletions spec/cassettes/12/job/job.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 52 additions & 0 deletions spec/cassettes/12/job/jobs.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 31 additions & 17 deletions spec/rundeck/client/job_spec.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
require 'spec_helper'

describe Rundeck::Client do
describe '.jobs', vcr: { cassette_name: 'jobs' } do
describe '.jobs', vcr: { cassette_name: 'job/jobs' } do
before do
prepare do
Rundeck.create_project(project_anvils, 'json')
Rundeck.import_jobs(job_yaml, 'yaml')
Rundeck.import_jobs(job_xml, 'xml')
end
@jobs = Rundeck.jobs('anvils')
end
subject { @jobs }
Expand All @@ -13,7 +18,7 @@
subject { @jobs.job }

it { is_expected.to be_an Array }
its(:length) { is_expected.to eq(6) }
its(:length) { is_expected.to eq(2) }

context 'the first job' do
subject { @jobs.job[0] }
Expand All @@ -28,9 +33,14 @@
end
end

describe '.job', vcr: { cassette_name: 'job' } do
describe '.job',
vcr: { cassette_name: 'job/job',
match_requests_on: [:method] } do
before do
@job = Rundeck.job('2')
VCR.use_cassette('job/jobs') do
@job_id = Rundeck.jobs('anvils').job.first.id
end
@job = Rundeck.job(@job_id)
end
subject { @job }

Expand All @@ -48,38 +58,36 @@

it { is_expected.to respond_to(:keepgoing) }
it { is_expected.to respond_to(:strategy) }

describe '#command' do
subject { @job.sequence.command }

it { is_expected.to respond_to(:scriptargs) }
it { is_expected.to respond_to(:script) }
end
it { is_expected.to respond_to(:command) }
end

it 'expects a get to have been made' do
expect(a_get('/job/2')).to have_been_made
expect(a_get("/job/#{@job_id}")).to have_been_made
end
end

describe '.delete_job' do
context 'when a job exists',
vcr: { cassette_name: 'delete_job_valid' } do
vcr: { cassette_name: 'job/delete_valid',
match_requests_on: [:method] } do
before do
@job = Rundeck.delete_job(job_id)
VCR.use_cassette('job/jobs') do
@job_id = Rundeck.jobs('anvils').job.first.id
end
@job = Rundeck.delete_job(@job_id)
end
let(:job_id) { '3' }
subject { @job }

it { is_expected.to be_nil }

it 'expects a delete to have been made' do
expect(a_delete('/job/3')).to have_been_made
expect(a_delete("/job/#{@job_id}")).to have_been_made
end
end

context 'when a job does not exist',
vcr: { cassette_name: 'delete_job_invalid' } do
vcr: { cassette_name: 'job/delete_invalid' } do
specify do
expect do
Rundeck.delete_job('123456')
Expand All @@ -92,6 +100,12 @@
describe '.import_job' do
context 'with valid format' do
before do
prepare do
VCR.use_cassette('job/jobs') do
jobs = Rundeck.jobs('anvils').job
jobs.each { |job| Rundeck.delete_job(job.id) }
end
end
@job_import = Rundeck.import_jobs(content, format)
end
subject { @job_import }
Expand Down Expand Up @@ -154,7 +168,7 @@
end
end

describe '.export_job' do
describe '.export_jobs' do
context 'with valid format' do
before do
@jobs = Rundeck.export_jobs('anvils', format)
Expand Down
18 changes: 10 additions & 8 deletions spec/rundeck/client/token_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
let(:user) { nil }

context 'when a single token is returned',
vcr: { cassette_name: 'token/tokens_single' } do
vcr: { cassette_name: 'token/single' } do
it { is_expected.to be_a Rundeck::ObjectifiedHash }
its(:token) { is_expected.to be_a Rundeck::ObjectifiedHash }
its(:allusers) { is_expected.to eq('true') }
Expand All @@ -22,7 +22,7 @@
end

context 'when multiple tokens are returned',
vcr: { cassette_name: 'token/tokens_multiple' } do
vcr: { cassette_name: 'token/multiple' } do
before { prepare { Rundeck.create_token('dev') } }

it { is_expected.to be_a Rundeck::ObjectifiedHash }
Expand All @@ -32,7 +32,7 @@
end

context 'when user is specified',
vcr: { cassette_name: 'token/tokens_user' } do
vcr: { cassette_name: 'token/user' } do
before { prepare { Rundeck.create_token('dev') } }
let(:user) { 'dev' }

Expand All @@ -49,7 +49,9 @@
end

describe '.token' do
context 'when a token exists', vcr: { cassette_name: 'token/token' } do
context 'when a token exists',
vcr: { cassette_name: 'token/token',
match_requests_on: [:method] } do
before do
@token = Rundeck.token(Rundeck.api_token)
end
Expand All @@ -63,7 +65,7 @@
end

context 'when a token does not exist',
vcr: { cassette_name: 'token/token_error' } do
vcr: { cassette_name: 'token/error' } do
specify do
expect do
Rundeck.token('123456')
Expand All @@ -75,7 +77,7 @@

describe '.create_token' do
context 'when the user exists',
vcr: { cassette_name: 'token/token_create' } do
vcr: { cassette_name: 'token/create' } do
before do
@token = Rundeck.create_token('dev')
end
Expand All @@ -91,10 +93,10 @@

describe '.delete_token' do
context 'when a token exists',
vcr: { cassette_name: 'token/token_delete',
vcr: { cassette_name: 'token/delete',
match_requests_on: [:method] } do
before do
VCR.use_cassette('token/tokens_user') do
VCR.use_cassette('token/user') do
@dev_tokens = Rundeck.tokens('dev')
end
@token = Rundeck.delete_token(@dev_tokens.token.first.id)
Expand Down
4 changes: 3 additions & 1 deletion spec/support/helpers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@ def cassette_exist?
# Example - Before running tests that need to 'get' a project,
# we must create the project.
def prepare
unless cassette_exist?
if !cassette_exist?
cassette = RSpec.current_example.metadata[:vcr][:cassette_name]
VCR.eject_cassette(cassette)
VCR.turned_off { yield }
VCR.insert_cassette(cassette)
end
end
alias_method :without_recording, :prepare


def endpoint
"#{Rundeck.endpoint}/api/#{Rundeck.api_version}"
Expand Down