Sha256: 2f25061995f62675bc8ee5b9ab4cf33695fb73d2a3928af4f19909e18cd5ae49

Contents?: true

Size: 1.63 KB

Versions: 8

Compression:

Stored size: 1.63 KB

Contents

require "test_helper"
require "trailblazer/skill"

class SkillTest < Minitest::Spec
  describe "Skill" do
    it do
      class_level_container = {
        "contract.class" => Object,
        "model.class" => String
      }

      runtime_skills = {
        "contract" => MyContract=Class.new,
        "model.class" => Integer
      }

      skill = Trailblazer::Skill.new(runtime_skills, class_level_container)

      # non-existent key.
      skill[:nope].must_equal nil

      # from runtime.
      skill["contract"].must_equal MyContract
      # from compile-time.
      skill["contract.class"].must_equal Object
      # runtime supersedes compile-time.
      skill["model.class"].must_equal Integer

      skill["model.class"] = Fixnum
      skill["model.class"].must_equal Fixnum

      # add new tuple.
      skill["user.current"] = "Todd"

      # original container don't get changed
      class_level_container.inspect.must_equal %{{"contract.class"=>Object, "model.class"=>String}}
      runtime_skills.inspect.must_equal %{{"contract"=>SkillTest::MyContract, "model.class"=>Integer}}

      # setting false.
      skill[:valid] = false
      skill[:valid].must_equal false

      # setting nil.
      skill[:valid] = nil
      skill[:valid].must_equal nil
    end
  end
end
# resolve: prefer @instance_attrs over competences
#   or instace_atrt is competences

# dependencies = { current_user: Runtime::User..., container: BLA }
# dependencies[:current_user]
# dependencies["user.create.contract"] # delegates to container, somehow.

# Create.(params, dependencies) # not sure if op should build this runtime dependencies hash or if it comes from outside.

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
trailblazer-operation-0.0.11 test/skill_test.rb
trailblazer-operation-0.0.10 test/skill_test.rb
trailblazer-operation-0.0.9 test/skill_test.rb
trailblazer-operation-0.0.8 test/skill_test.rb
trailblazer-operation-0.0.7 test/skill_test.rb
trailblazer-operation-0.0.6 test/skill_test.rb
trailblazer-operation-0.0.5 test/skill_test.rb
trailblazer-operation-0.0.4 test/skill_test.rb