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