Sha256: 4800d16cf2925681baa3be55b57402662df0fe2573045225e7741c72c71a057f

Contents?: true

Size: 1.81 KB

Versions: 16

Compression:

Stored size: 1.81 KB

Contents

require 'test_helper'

class Api::DeploysControllerTest < ActionController::TestCase
  setup do
    authenticate!
    @user = users(:walrus)
    @stack = stacks(:shipit)
    @commit = commits(:fifth)
  end

  test "#create triggers a new deploy for the stack" do
    assert_difference -> { @stack.deploys.count }, 1 do
      post :create, stack_id: @stack.to_param, sha: @commit.sha
    end
    assert_response :accepted
    assert_json 'status', 'pending'
  end

  test "#create use the claimed user as author" do
    request.headers['X-Shipit-User'] = @user.login
    post :create, stack_id: @stack.to_param, sha: @commit.sha
    deploy = Deploy.last
    deploy.user == @user
  end

  test "#create renders a 422 if the sha isn't found" do
    post :create, stack_id: @stack.to_param, sha: '123443543545'
    assert_response :unprocessable_entity
    assert_json 'errors', 'sha' => ['Unknown revision']
  end

  test "#create renders a 422 if the sha format is invalid" do
    post :create, stack_id: @stack.to_param, sha: '1'
    assert_response :unprocessable_entity
    assert_json 'errors', 'sha' => ['is too short (minimum is 6 characters)']
  end

  test "#create refuses to deploy locked stacks" do
    @stack.update!(lock_reason: 'Something broken')

    assert_no_difference -> { @stack.deploys.count } do
      post :create, stack_id: @stack.to_param, sha: @commit.sha
    end
    assert_response :unprocessable_entity
    assert_json 'errors.force', ["Can't deploy a locked stack"]
  end

  test "#create accepts to deploy locked stacks if force mode is enabled" do
    @stack.update!(lock_reason: 'Something broken')

    assert_difference -> { @stack.deploys.count }, 1 do
      post :create, stack_id: @stack.to_param, sha: @commit.sha, force: true
    end
    assert_response :accepted
    assert_json 'status', 'pending'
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
shipit-engine-0.5.2 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.5.1 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.5.0 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.10 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.9 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.8 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.7 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.6 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.5 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.4 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.3 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.2 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.1 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.4.0 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.3.1 test/controllers/api/deploys_controller_test.rb
shipit-engine-0.3.0 test/controllers/api/deploys_controller_test.rb