Farmbot-Web-App/spec/lib/celery_script/farm_event_celery_stuff_spe...

74 lines
2.2 KiB
Ruby

require 'spec_helper'
describe CeleryScript::Checker do
let(:device) { FactoryBot.create(:device) }
let(:tool) { FactoryBot.create(:tool, device: device) }
let(:point) { FactoryBot.create(:generic_pointer, device: device) }
let(:corpus) { Sequence::Corpus }
it "disallows the use of `identifier` nodes" do
params = { kind: "internal_farm_event",
args: {},
body: [ {kind: "parameter_application",
args: {
label: "foo",
data_value: {
kind: "identifier",
args: {
label: "makes no sense",
}
}
} } ]
}
tree = CeleryScript::AstNode.new(**params)
checker = CeleryScript::Checker.new(tree, corpus, device)
expect { checker.run! }.to raise_error(CeleryScript::TypeCheckError)
end
it "runs through a syntactically valid program" do
body = [
{
kind: "parameter_application",
args: {
label: "tool",
data_value: {
kind: "tool",
args: {
tool_id: tool.id
}
}
}
},
{
kind: "parameter_application",
args: {
label: "coordinate",
data_value: {
kind: "coordinate",
args: {
x: 0,
y: 0,
z: 0
}
}
}
},
{
kind: "parameter_application",
args: {
label: "point",
data_value: {
kind: "point",
args: { pointer_type: "GenericPointer", pointer_id: point.id }
}
}
}
]
params = { kind: "internal_farm_event", body: body, args: {} }
tree = CeleryScript::AstNode.new(**params)
checker = CeleryScript::Checker.new(tree, corpus, device)
expect { checker.run! }.not_to(raise_error)
end
end