From ac6e5387b3baef14b58a3db4a06bbfccd36bd12c Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Wed, 12 Sep 2018 13:25:35 -0500 Subject: [PATCH] Fix blinky test --- app/models/celery_script_settings_bag.rb | 5 +-- spec/lib/celery_script/corpus_spec.rb | 41 ++++++++++++++----- .../pin_bindings/pin_bindings_spec.rb | 2 +- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/app/models/celery_script_settings_bag.rb b/app/models/celery_script_settings_bag.rb index 920581026..599a6cced 100644 --- a/app/models/celery_script_settings_bag.rb +++ b/app/models/celery_script_settings_bag.rb @@ -74,9 +74,8 @@ module CeleryScriptSettingsBag "BoxLed4" => BoxLed } CANT_ANALOG = "Analog modes are not supported for Box LEDs" ALLOWED_PIN_TYPES = PIN_TYPE_MAP.keys - KLASS_LOOKUP = Point::POINTER_KINDS.reduce({}) do |acc, val| - (acc[val] = Kernel.const_get(val)) && acc - end + # KLASS_LOOKUP = + # Point::POINTER_KINDS.reduce({}) { |a, v| (a[v] = Kernel.const_get(v)) && a } RESOURCE_UPDATE_ARGS = [:resource_type, :resource_id, :label, :value] Corpus = CeleryScript::Corpus diff --git a/spec/lib/celery_script/corpus_spec.rb b/spec/lib/celery_script/corpus_spec.rb index caeb633e5..dc3c3cf56 100644 --- a/spec/lib/celery_script/corpus_spec.rb +++ b/spec/lib/celery_script/corpus_spec.rb @@ -27,7 +27,7 @@ describe CeleryScript::Corpus do speed: 100 } }) - check1 = CeleryScript::Checker.new(ok1, Sequence::Corpus, device) + check1 = CeleryScript::Checker.new(ok1, corpus, device) expect(check1.valid?).to be_truthy ok2 = CeleryScript::AstNode.new({ @@ -48,7 +48,7 @@ describe CeleryScript::Corpus do speed: 100 } }) - check2 = CeleryScript::Checker.new(ok2, Sequence::Corpus, device) + check2 = CeleryScript::Checker.new(ok2, corpus, device) expect(check2.valid?).to be_truthy end @@ -68,7 +68,7 @@ describe CeleryScript::Corpus do }, } }) - check = CeleryScript::Checker.new(bad, Sequence::Corpus, device) + check = CeleryScript::Checker.new(bad, corpus, device) expect(check.valid?).to be_falsey expect(check.error.message).to include("but got Integer") expect(check.error.message).to include("'location' within 'move_absolute'") @@ -94,7 +94,7 @@ describe CeleryScript::Corpus do speed: 100 } }) - check = CeleryScript::Checker.new(bad, Sequence::Corpus, device) + check = CeleryScript::Checker.new(bad, corpus, device) expect(check.valid?).to be_falsey expect(check.error.message).to include("but got String") end @@ -123,9 +123,7 @@ describe CeleryScript::Corpus do }, "body": [] }) - checker = CeleryScript::Checker.new(tree, - CeleryScriptSettingsBag::Corpus, - device) + checker = CeleryScript::Checker.new(tree, corpus, device) expect(checker.error.message).to include("not a valid message_type") end @@ -145,9 +143,32 @@ describe CeleryScript::Corpus do } ] }) - checker = CeleryScript::Checker.new(tree, - CeleryScriptSettingsBag::Corpus, - device) + checker = CeleryScript::Checker.new(tree, corpus, device) expect(checker.error.message).to include("not a valid channel_name") end + + it "validates tool_ids" do + ast = { "kind": "tool", "args": { "tool_id": 0 } }; + checker = CeleryScript::Checker.new(CeleryScript::AstNode.new(ast), + corpus, + device) + expect(checker.valid?).to be(false) + expect(checker.error.message).to include("Tool #0 does not exist.") + end + + it "Validates resource_update nodes" do + ast = { + kind: "resource_update", + args: { + resource_type: "Device", + resource_id: 23, + label: "mounted_tool_id", + value: 1 + } + } + ast = { "kind": "tool", "args": { "tool_id": 0 } }; + checker = CeleryScript::Checker.new(CeleryScript::AstNode.new(ast), + corpus, + device) + end end diff --git a/spec/mutations/pin_bindings/pin_bindings_spec.rb b/spec/mutations/pin_bindings/pin_bindings_spec.rb index 9b1f447d7..8008836e1 100644 --- a/spec/mutations/pin_bindings/pin_bindings_spec.rb +++ b/spec/mutations/pin_bindings/pin_bindings_spec.rb @@ -20,7 +20,7 @@ end describe "Pin Binding updates" do it "enforces mutual exclusivity" do - Device.destroy_all + Device.update_all(mounted_tool_id: nil) [Point, Tool, PinBinding, Sequence].map(&:destroy_all) device = FactoryBot.create(:device) PinBinding.create!(device: device)