Sha256: a327341c4a3c84983d12aaa7e7b0a5132ccd504184d9495a0386a7326c4829b0

Contents?: true

Size: 1.95 KB

Versions: 13

Compression:

Stored size: 1.95 KB

Contents

require 'test_helper'

module Shipit
  class TaskDefinitionsTest < ActiveSupport::TestCase
    setup do
      @definition = TaskDefinition.new(
        'restart',
        'action' => 'Restart application',
        'title' => 'Restart application %{FOO}',
        'description' => 'Restart app and job servers',
        'steps' => ['touch tmp/restart'],
        'allow_concurrency' => true,
        'variables' => [
          {'name' => 'FOO', 'title' => 'Set to 0 to foo', 'default' => '1'},
          {'name' => 'BAR', 'title' => 'Set to 1 to bar', 'default' => '0'},
          {'name' => 'WALRUS', 'title' => 'Use with caution', 'default' => ' '},
          {'name' => 'NODEFAULT', 'title' => 'Variable without default'},
        ],
      )
    end

    test ".load returns nil if payload is nil or blank" do
      assert_nil TaskDefinition.load('')
      assert_nil TaskDefinition.load(nil)
    end

    test ".dump returns nil if given nil" do
      assert_nil TaskDefinition.dump(nil)
    end

    test "#variables" do
      assert_equal 4, @definition.variables.size
      assert_equal 3, @definition.variables_with_defaults.size
    end

    test "serialization works" do
      as_json = {
        id: 'restart',
        action: 'Restart application',
        title: "Restart application %{FOO}",
        description: 'Restart app and job servers',
        steps: ['touch tmp/restart'],
        checklist: [],
        allow_concurrency: true,
        variables: [
          {'name' => 'FOO', 'title' => 'Set to 0 to foo', 'default' => '1', 'select' => nil},
          {'name' => 'BAR', 'title' => 'Set to 1 to bar', 'default' => '0', 'select' => nil},
          {'name' => 'WALRUS', 'title' => 'Use with caution', 'default' => ' ', 'select' => nil},
          {'name' => 'NODEFAULT', 'title' => 'Variable without default', 'default' => '', 'select' => nil},
        ],
      }
      assert_equal as_json, TaskDefinition.load(TaskDefinition.dump(@definition)).as_json
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
shipit-engine-0.31.0 test/models/task_definitions_test.rb
shipit-engine-0.30.0 test/models/task_definitions_test.rb
shipit-engine-0.29.0 test/models/task_definitions_test.rb
shipit-engine-0.28.1 test/models/task_definitions_test.rb
shipit-engine-0.28.0 test/models/task_definitions_test.rb
shipit-engine-0.27.1 test/models/task_definitions_test.rb
shipit-engine-0.27.0 test/models/task_definitions_test.rb
shipit-engine-0.26.0 test/models/task_definitions_test.rb
shipit-engine-0.25.1 test/models/task_definitions_test.rb
shipit-engine-0.25.0 test/models/task_definitions_test.rb
shipit-engine-0.24.0 test/models/task_definitions_test.rb
shipit-engine-0.23.1 test/models/task_definitions_test.rb
shipit-engine-0.23.0 test/models/task_definitions_test.rb