feature flag test
This commit is contained in:
parent
ca5820e2e3
commit
6c839aebec
|
@ -5,6 +5,7 @@ module Travis::API::V3
|
|||
|
||||
def run!
|
||||
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
|
||||
raise InsufficientAccess unless Travis::Features.feature_active?(:cron)
|
||||
raise NotFound unless repository = find(:repository)
|
||||
raise NotFound unless branch = find(:branch, repository)
|
||||
raise Error.new('Invalid value for interval. Interval must be "daily", "weekly" or "monthly"!', status: 422) unless ["daily", "weekly", "monthly"].include?(params["interval"])
|
||||
|
|
|
@ -4,6 +4,7 @@ module Travis::API::V3
|
|||
|
||||
def run!
|
||||
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
|
||||
raise InsufficientAccess unless Travis::Features.feature_active?(:cron)
|
||||
cron = find
|
||||
access_control.permissions(cron).delete!
|
||||
cron.destroy
|
||||
|
|
|
@ -3,6 +3,7 @@ module Travis::API::V3
|
|||
#params :id
|
||||
|
||||
def run!
|
||||
raise InsufficientAccess unless Travis::Features.feature_active?(:cron)
|
||||
find
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,7 @@ module Travis::API::V3
|
|||
class Services::Cron::ForBranch < Service
|
||||
|
||||
def run!
|
||||
raise InsufficientAccess unless Travis::Features.feature_active?(:cron)
|
||||
query.find_for_branch(find(:branch, find(:repository)))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,6 +3,7 @@ module Travis::API::V3
|
|||
paginate
|
||||
|
||||
def run!
|
||||
raise InsufficientAccess unless Travis::Features.feature_active?(:cron)
|
||||
query.find(find(:repository))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,7 @@ module Travis::API::V3
|
|||
class Services::Crons::Start < Service
|
||||
|
||||
def run!
|
||||
raise InsufficientAccess unless Travis::Features.feature_active?(:cron)
|
||||
query.start_all()
|
||||
end
|
||||
|
||||
|
|
|
@ -11,6 +11,20 @@ describe Travis::API::V3::Services::Cron::Create do
|
|||
let(:wrong_options) {{ "interval" => "notExisting", "disable_by_build" => false }}
|
||||
let(:parsed_body) { JSON.load(body) }
|
||||
|
||||
before do
|
||||
Travis::Features.enable_for_all(:cron)
|
||||
end
|
||||
|
||||
describe "no Feature enabled" do
|
||||
before { Travis::Features.disable_for_all(:cron) }
|
||||
before { post("/v3/repo/#{repo.id}/branch/#{branch.name}/cron", options, headers)}
|
||||
example { expect(parsed_body).to be == {
|
||||
"@type"=> "error",
|
||||
"error_type"=> "insufficient_access",
|
||||
"error_message"=> "forbidden"
|
||||
}}
|
||||
end
|
||||
|
||||
describe "creating a cron job" do
|
||||
before { last_cron }
|
||||
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
|
||||
|
|
|
@ -8,6 +8,20 @@ describe Travis::API::V3::Services::Cron::Delete do
|
|||
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
|
||||
let(:parsed_body) { JSON.load(body) }
|
||||
|
||||
before do
|
||||
Travis::Features.enable_for_all(:cron)
|
||||
end
|
||||
|
||||
describe "no Feature enabled" do
|
||||
before { Travis::Features.disable_for_all(:cron) }
|
||||
before { delete("/v3/cron/#{cron.id}", {}, headers)}
|
||||
example { expect(parsed_body).to be == {
|
||||
"@type"=> "error",
|
||||
"error_type"=> "insufficient_access",
|
||||
"error_message"=> "forbidden"
|
||||
}}
|
||||
end
|
||||
|
||||
describe "deleting a cron job by id" do
|
||||
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
|
||||
before { delete("/v3/cron/#{cron.id}", {}, headers) }
|
||||
|
|
|
@ -6,6 +6,20 @@ describe Travis::API::V3::Services::Cron::Find do
|
|||
let(:cron) { Travis::API::V3::Models::Cron.create(branch: branch, interval:'daily') }
|
||||
let(:parsed_body) { JSON.load(body) }
|
||||
|
||||
before do
|
||||
Travis::Features.enable_for_all(:cron)
|
||||
end
|
||||
|
||||
describe "no Feature enabled" do
|
||||
before { Travis::Features.disable_for_all(:cron) }
|
||||
before { get("/v3/cron/#{cron.id}") }
|
||||
example { expect(parsed_body).to be == {
|
||||
"@type"=> "error",
|
||||
"error_type"=> "insufficient_access",
|
||||
"error_message"=> "forbidden"
|
||||
}}
|
||||
end
|
||||
|
||||
describe "fetching a cron job by id" do
|
||||
before { get("/v3/cron/#{cron.id}") }
|
||||
example { expect(last_response).to be_ok }
|
||||
|
|
|
@ -6,6 +6,20 @@ describe Travis::API::V3::Services::Cron::ForBranch do
|
|||
let(:cron) { Travis::API::V3::Models::Cron.create(branch: branch, interval:'daily') }
|
||||
let(:parsed_body) { JSON.load(body) }
|
||||
|
||||
before do
|
||||
Travis::Features.enable_for_all(:cron)
|
||||
end
|
||||
|
||||
describe "no Feature enabled" do
|
||||
before { Travis::Features.disable_for_all(:cron) }
|
||||
before { get("/v3/repo/#{repo.id}/branch/#{branch.name}/cron") }
|
||||
example { expect(parsed_body).to be == {
|
||||
"@type"=> "error",
|
||||
"error_type"=> "insufficient_access",
|
||||
"error_message"=> "forbidden"
|
||||
}}
|
||||
end
|
||||
|
||||
describe "fetching all crons by repo id" do
|
||||
before { cron }
|
||||
before { get("/v3/repo/#{repo.id}/branch/#{branch.name}/cron") }
|
||||
|
|
|
@ -6,6 +6,20 @@ describe Travis::API::V3::Services::Crons::ForRepository do
|
|||
let(:cron) { Travis::API::V3::Models::Cron.create(branch: branch, interval:'daily') }
|
||||
let(:parsed_body) { JSON.load(body) }
|
||||
|
||||
before do
|
||||
Travis::Features.enable_for_all(:cron)
|
||||
end
|
||||
|
||||
describe "no Feature enabled" do
|
||||
before { Travis::Features.disable_for_all(:cron) }
|
||||
before { get("/v3/repo/#{repo.id}/crons") }
|
||||
example { expect(parsed_body).to be == {
|
||||
"@type"=> "error",
|
||||
"error_type"=> "insufficient_access",
|
||||
"error_message"=> "forbidden"
|
||||
}}
|
||||
end
|
||||
|
||||
describe "fetching all crons by repo id" do
|
||||
before { cron }
|
||||
before { get("/v3/repo/#{repo.id}/crons") }
|
||||
|
|
|
@ -12,74 +12,90 @@ Gem::Specification.new do |s|
|
|||
"Konstantin Haase",
|
||||
"Piotr Sarnacki",
|
||||
"Sven Fuchs",
|
||||
"carlad",
|
||||
"Hiro Asari",
|
||||
"Mathias Meyer",
|
||||
"Josh Kalderimis",
|
||||
"Henrik Hodne",
|
||||
"carlad",
|
||||
"Steffen Kötte",
|
||||
"Lennard Wolf",
|
||||
"Tyranja",
|
||||
"Andre Arko",
|
||||
"Dan Buch",
|
||||
"Andre Arko",
|
||||
"C. Scott Ananian",
|
||||
"Erik Michaels-Ober",
|
||||
"Brian Ford",
|
||||
"Jonas Chromik",
|
||||
"Steffen",
|
||||
"Steve Richert",
|
||||
"Bryan Goldstein",
|
||||
"Dan Rice",
|
||||
"James Dennes",
|
||||
"María de Antón",
|
||||
"Nick Schonning",
|
||||
"Patrick Williams",
|
||||
"Puneeth Chaganti",
|
||||
"Thais Camilo and Konstantin Haase",
|
||||
"Tim Carey-Smith",
|
||||
"Bryan Goldstein",
|
||||
"Zachary Scott",
|
||||
"James Dennes",
|
||||
"rainsun",
|
||||
"Nick Schonning",
|
||||
"Patrick Williams",
|
||||
"Dan Rice"
|
||||
"rainsun"
|
||||
]
|
||||
|
||||
s.email = [
|
||||
"konstantin.mailinglists@googlemail.com",
|
||||
"drogus@gmail.com",
|
||||
"me@svenfuchs.com",
|
||||
"carla@travis-ci.com",
|
||||
"asari.ruby@gmail.com",
|
||||
"meyer@paperplanes.de",
|
||||
"josh.kalderimis@gmail.com",
|
||||
"steffen.koette@gmail.com",
|
||||
"me@henrikhodne.com",
|
||||
"henrik@hodne.io",
|
||||
"carlad@users.noreply.github.com",
|
||||
"konstantin.haase@gmail.com",
|
||||
"lennardwolf@live.de",
|
||||
"carla@travis-ci.org",
|
||||
"tyranja@cassiopeia.uberspace.de",
|
||||
"andre@arko.net",
|
||||
"svenfuchs@artweb-design.de",
|
||||
"dan@travis-ci.org",
|
||||
"sferik@gmail.com",
|
||||
"svenfuchs@artweb-design.de",
|
||||
"cscott@cscott.net",
|
||||
"henrik@travis-ci.com",
|
||||
"steve.richert@gmail.com",
|
||||
"sferik@gmail.com",
|
||||
"bford@engineyard.com",
|
||||
"henrik@travis-ci.com",
|
||||
"Jonas.Chromik@student.hpi.uni-potsdam.de",
|
||||
"steffen.koette@gmail.com",
|
||||
"steve.richert@gmail.com",
|
||||
"brysgo@gmail.com",
|
||||
"dan@meatballhat.com",
|
||||
"dan@zoombody.com",
|
||||
"jdennes@gmail.com",
|
||||
"MariadeAnton@users.noreply.github.com",
|
||||
"nschonni@gmail.com",
|
||||
"patrick@bittorrent.com",
|
||||
"punchagan@muse-amuse.in",
|
||||
"carlad@users.noreply.github.com",
|
||||
"dan@zoombody.com",
|
||||
"rainsuner@gmail.com",
|
||||
"dev+narwen+rkh@rkh.im",
|
||||
"tim@spork.in",
|
||||
"brysgo@gmail.com",
|
||||
"e@zzak.io",
|
||||
"jdennes@gmail.com",
|
||||
"nschonni@gmail.com",
|
||||
"dan@meatballhat.com"
|
||||
"rainsuner@gmail.com"
|
||||
]
|
||||
|
||||
s.files = [
|
||||
"CONTRIBUTING.md",
|
||||
"LICENSE",
|
||||
"Procfile",
|
||||
"README.md",
|
||||
"Rakefile",
|
||||
"bin/start-nginx",
|
||||
"config.ru",
|
||||
"config/database.yml",
|
||||
"config/mime.types",
|
||||
"config/nginx.conf.erb",
|
||||
"config/puma-config.rb",
|
||||
"config/ruby_config.sh",
|
||||
"config/unicorn.rb",
|
||||
"lib/active_record_postgres_variables.rb",
|
||||
"lib/conditional_skylight.rb",
|
||||
"lib/tasks/build_update_branch.rake",
|
||||
"lib/tasks/build_update_pull_request_data.rake",
|
||||
|
@ -141,6 +157,7 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/app/responders/xml.rb",
|
||||
"lib/travis/api/app/services/schedule_request.rb",
|
||||
"lib/travis/api/app/stack_instrumentation.rb",
|
||||
"lib/travis/api/attack.rb",
|
||||
"lib/travis/api/instruments.rb",
|
||||
"lib/travis/api/serializer.rb",
|
||||
"lib/travis/api/v2.rb",
|
||||
|
@ -191,6 +208,7 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/models/broadcast.rb",
|
||||
"lib/travis/api/v3/models/build.rb",
|
||||
"lib/travis/api/v3/models/commit.rb",
|
||||
"lib/travis/api/v3/models/cron.rb",
|
||||
"lib/travis/api/v3/models/email.rb",
|
||||
"lib/travis/api/v3/models/job.rb",
|
||||
"lib/travis/api/v3/models/log.rb",
|
||||
|
@ -201,14 +219,33 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/models/repository.rb",
|
||||
"lib/travis/api/v3/models/request.rb",
|
||||
"lib/travis/api/v3/models/ssl_key.rb",
|
||||
"lib/travis/api/v3/models/star.rb",
|
||||
"lib/travis/api/v3/models/subscription.rb",
|
||||
"lib/travis/api/v3/models/token.rb",
|
||||
"lib/travis/api/v3/models/user.rb",
|
||||
"lib/travis/api/v3/opt_in.rb",
|
||||
"lib/travis/api/v3/paginator.rb",
|
||||
"lib/travis/api/v3/paginator/url_generator.rb",
|
||||
"lib/travis/api/v3/permissions.rb",
|
||||
"lib/travis/api/v3/permissions/account.rb",
|
||||
"lib/travis/api/v3/permissions/build.rb",
|
||||
"lib/travis/api/v3/permissions/cron.rb",
|
||||
"lib/travis/api/v3/permissions/generic.rb",
|
||||
"lib/travis/api/v3/permissions/job.rb",
|
||||
"lib/travis/api/v3/permissions/organization.rb",
|
||||
"lib/travis/api/v3/permissions/repository.rb",
|
||||
"lib/travis/api/v3/permissions/user.rb",
|
||||
"lib/travis/api/v3/queries.rb",
|
||||
"lib/travis/api/v3/queries/accounts.rb",
|
||||
"lib/travis/api/v3/queries/branch.rb",
|
||||
"lib/travis/api/v3/queries/branches.rb",
|
||||
"lib/travis/api/v3/queries/broadcasts.rb",
|
||||
"lib/travis/api/v3/queries/build.rb",
|
||||
"lib/travis/api/v3/queries/builds.rb",
|
||||
"lib/travis/api/v3/queries/cron.rb",
|
||||
"lib/travis/api/v3/queries/crons.rb",
|
||||
"lib/travis/api/v3/queries/job.rb",
|
||||
"lib/travis/api/v3/queries/jobs.rb",
|
||||
"lib/travis/api/v3/queries/organization.rb",
|
||||
"lib/travis/api/v3/queries/organizations.rb",
|
||||
"lib/travis/api/v3/queries/owner.rb",
|
||||
|
@ -224,15 +261,25 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/renderer/accounts.rb",
|
||||
"lib/travis/api/v3/renderer/avatar_url.rb",
|
||||
"lib/travis/api/v3/renderer/branch.rb",
|
||||
"lib/travis/api/v3/renderer/branches.rb",
|
||||
"lib/travis/api/v3/renderer/broadcast.rb",
|
||||
"lib/travis/api/v3/renderer/broadcasts.rb",
|
||||
"lib/travis/api/v3/renderer/build.rb",
|
||||
"lib/travis/api/v3/renderer/builds.rb",
|
||||
"lib/travis/api/v3/renderer/collection_renderer.rb",
|
||||
"lib/travis/api/v3/renderer/commit.rb",
|
||||
"lib/travis/api/v3/renderer/cron.rb",
|
||||
"lib/travis/api/v3/renderer/crons.rb",
|
||||
"lib/travis/api/v3/renderer/error.rb",
|
||||
"lib/travis/api/v3/renderer/job.rb",
|
||||
"lib/travis/api/v3/renderer/jobs.rb",
|
||||
"lib/travis/api/v3/renderer/model_renderer.rb",
|
||||
"lib/travis/api/v3/renderer/organization.rb",
|
||||
"lib/travis/api/v3/renderer/organizations.rb",
|
||||
"lib/travis/api/v3/renderer/owner.rb",
|
||||
"lib/travis/api/v3/renderer/repositories.rb",
|
||||
"lib/travis/api/v3/renderer/repository.rb",
|
||||
"lib/travis/api/v3/renderer/request.rb",
|
||||
"lib/travis/api/v3/renderer/requests.rb",
|
||||
"lib/travis/api/v3/renderer/user.rb",
|
||||
"lib/travis/api/v3/result.rb",
|
||||
|
@ -245,19 +292,38 @@ Gem::Specification.new do |s|
|
|||
"lib/travis/api/v3/services.rb",
|
||||
"lib/travis/api/v3/services/accounts/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/branch/find.rb",
|
||||
"lib/travis/api/v3/services/branches/find.rb",
|
||||
"lib/travis/api/v3/services/broadcasts/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/build/cancel.rb",
|
||||
"lib/travis/api/v3/services/build/find.rb",
|
||||
"lib/travis/api/v3/services/build/restart.rb",
|
||||
"lib/travis/api/v3/services/builds/find.rb",
|
||||
"lib/travis/api/v3/services/cron/create.rb",
|
||||
"lib/travis/api/v3/services/cron/delete.rb",
|
||||
"lib/travis/api/v3/services/cron/find.rb",
|
||||
"lib/travis/api/v3/services/cron/for_branch.rb",
|
||||
"lib/travis/api/v3/services/crons/for_repository.rb",
|
||||
"lib/travis/api/v3/services/crons/start.rb",
|
||||
"lib/travis/api/v3/services/job/cancel.rb",
|
||||
"lib/travis/api/v3/services/job/find.rb",
|
||||
"lib/travis/api/v3/services/job/restart.rb",
|
||||
"lib/travis/api/v3/services/jobs/find.rb",
|
||||
"lib/travis/api/v3/services/organization/find.rb",
|
||||
"lib/travis/api/v3/services/organization/sync.rb",
|
||||
"lib/travis/api/v3/services/organizations/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/owner/find.rb",
|
||||
"lib/travis/api/v3/services/repositories/for_current_user.rb",
|
||||
"lib/travis/api/v3/services/repositories/for_owner.rb",
|
||||
"lib/travis/api/v3/services/repository/disable.rb",
|
||||
"lib/travis/api/v3/services/repository/enable.rb",
|
||||
"lib/travis/api/v3/services/repository/find.rb",
|
||||
"lib/travis/api/v3/services/repository/star.rb",
|
||||
"lib/travis/api/v3/services/repository/unstar.rb",
|
||||
"lib/travis/api/v3/services/requests/create.rb",
|
||||
"lib/travis/api/v3/services/requests/find.rb",
|
||||
"lib/travis/api/v3/services/user/current.rb",
|
||||
"lib/travis/api/v3/services/user/find.rb",
|
||||
"lib/travis/api/v3/services/user/sync.rb",
|
||||
"lib/travis/api/workers/build_cancellation.rb",
|
||||
"lib/travis/api/workers/build_restart.rb",
|
||||
"lib/travis/api/workers/job_cancellation.rb",
|
||||
|
@ -280,6 +346,8 @@ Gem::Specification.new do |s|
|
|||
"script/console",
|
||||
"script/repos_stats.rb",
|
||||
"script/server",
|
||||
"script/web_concurrency",
|
||||
"spec/active_record_postgres_variables_spec.rb",
|
||||
"spec/integration/error_handling_spec.rb",
|
||||
"spec/integration/formats_handling_spec.rb",
|
||||
"spec/integration/responders_spec.rb",
|
||||
|
@ -344,7 +412,7 @@ Gem::Specification.new do |s|
|
|||
"spec/unit/endpoint/lint_spec.rb",
|
||||
"spec/unit/endpoint/logs_spec.rb",
|
||||
"spec/unit/endpoint/repos_spec.rb",
|
||||
"spec/unit/endpoint/requests_spec.rb",
|
||||
"spec/unit/endpoint/requests/throttle_spec.rb",
|
||||
"spec/unit/endpoint/users_spec.rb",
|
||||
"spec/unit/endpoint_spec.rb",
|
||||
"spec/unit/extensions/expose_pattern_spec.rb",
|
||||
|
@ -359,19 +427,41 @@ Gem::Specification.new do |s|
|
|||
"spec/unit/responders/json_spec.rb",
|
||||
"spec/unit/responders/service_spec.rb",
|
||||
"spec/v3/extensions/belongs_to_spec.rb",
|
||||
"spec/v3/models/cron_spec.rb",
|
||||
"spec/v3/renderer/avatar_url_spec.rb",
|
||||
"spec/v3/result_spec.rb",
|
||||
"spec/v3/service_index_spec.rb",
|
||||
"spec/v3/services/accounts/for_current_user_spec.rb",
|
||||
"spec/v3/services/branch/find_spec.rb",
|
||||
"spec/v3/services/branches/find_spec.rb",
|
||||
"spec/v3/services/broadcasts/for_current_user_spec.rb",
|
||||
"spec/v3/services/build/cancel_spec.rb",
|
||||
"spec/v3/services/build/find_spec.rb",
|
||||
"spec/v3/services/build/restart_spec.rb",
|
||||
"spec/v3/services/builds/find_spec.rb",
|
||||
"spec/v3/services/cron/create_spec.rb",
|
||||
"spec/v3/services/cron/delete_spec.rb",
|
||||
"spec/v3/services/cron/find_spec.rb",
|
||||
"spec/v3/services/cron/for_branch_spec.rb",
|
||||
"spec/v3/services/crons/for_repository_spec.rb",
|
||||
"spec/v3/services/job/cancel_spec.rb",
|
||||
"spec/v3/services/job/find_spec.rb",
|
||||
"spec/v3/services/job/restart_spec.rb",
|
||||
"spec/v3/services/jobs/find_spec.rb",
|
||||
"spec/v3/services/organization/find_spec.rb",
|
||||
"spec/v3/services/organizations/for_current_user_spec.rb",
|
||||
"spec/v3/services/owner/find_spec.rb",
|
||||
"spec/v3/services/repositories/for_current_user_spec.rb",
|
||||
"spec/v3/services/repositories/for_owner_spec.rb",
|
||||
"spec/v3/services/repository/disable_spec.rb",
|
||||
"spec/v3/services/repository/enable_spec.rb",
|
||||
"spec/v3/services/repository/find_spec.rb",
|
||||
"spec/v3/services/repository/star_spec.rb",
|
||||
"spec/v3/services/repository/unstar_spec.rb",
|
||||
"spec/v3/services/requests/create_spec.rb",
|
||||
"spec/v3/services/user/current_spec.rb",
|
||||
"spec/v3/services/user/find_spec.rb",
|
||||
"spec/v3/services/user/sync_spec.rb",
|
||||
"tmp/.gitkeep",
|
||||
"travis-api.gemspec"
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue
Block a user