# frozen_string_literal: true

require "test_helper"
require_relative "../../sgx-bwmsgsv2"
require "rantly/minitest_extensions"
require_relative "generators/port_out_pin_cmd"

def panic(e)
	$panic = e
end

class PortOutPinPropertyTest < Minitest::Test
	def setup
		reset_stanzas!
		reset_redis!
	end

	def test_execute_returns_form_for_registered_user
		property_of {
			PortOutPinExecuteCmd.new(REDIS).generate
		}.check { |_metadata, example|
			process_stanza(example['stanza'])

			assert_equal 1, written.length
			reply = written.shift

			assert_equal example['jid'], reply.to.to_s
			assert_equal :executing, reply.status
			assert_equal 'set-port-out-pin', reply.node

			vars = reply.form.fields.map(&:var)
			assert_includes vars, 'pin'
			assert_includes vars, 'confirm_pin'
		}
	end
	em :test_execute_returns_form_for_registered_user
end
