diff --git a/spec/v3/services/cron/create_spec.rb b/spec/v3/services/cron/create_spec.rb index 1d1da662..59b6504f 100644 --- a/spec/v3/services/cron/create_spec.rb +++ b/spec/v3/services/cron/create_spec.rb @@ -8,6 +8,7 @@ describe Travis::API::V3::Services::Cron::Create do let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}", "Content-Type" => "application/json" }} let(:options) {{ "interval" => "monthly", "disable_by_build" => false }} + let(:wrong_options) {{ "interval" => "notExisting", "disable_by_build" => false }} let(:parsed_body) { JSON.load(body) } describe "creating a cron job" do @@ -41,6 +42,25 @@ describe Travis::API::V3::Services::Cron::Create do }} end + describe "creating multiple cron jobs for one branch" do + before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) } + before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options, headers) } + before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options, headers) } + it "only stores one" do + expect(Travis::API::V3::Models::Cron.where(branch_id: branch.id).count).to eq(1) + end + end + + describe "creating a cron job with a wrong interval" do + before { last_cron } + before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) } + it "raises an error" do + expect { + post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", wrong_options, headers) + }.to raise_error(ArgumentError, 'interval must be "daily", "weekly" or "monthly"') + end + end + describe "try creating a cron job without login" do before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron/create", options) } example { expect(parsed_body).to be == {