1package.path = package.path ..
2		";../?.lua;../device-adapters/?.lua;./data/?.lua;../../../scripts/dzVents/generated_scripts/?.lua;" ..
3		"../../../scripts/lua/?.lua"
4
5local TestTools = require('domoticzTestTools')('8080', true)
6local socket = require("socket")
7
8local _ = require 'lodash'
9
10local fsScripts = {'scriptTestEventState.lua'}
11
12describe('Test event state', function ()
13
14	local vdScriptStartIdx, vdScriptEndIdx, vdScriptOK, varIdx, scSwitchIdx, vdScriptOKIdx
15
16	setup(function()
17		local ok = TestTools.reset()
18		assert.is_true(ok)
19
20		ok, dummyIdx = TestTools.createDummyHardware('dummy')
21		TestTools.createVirtualDevice(dummyIdx, 'vdRepeatSwitch', 6)
22		ok, vdScriptStartIdx = TestTools.createVirtualDevice(dummyIdx, 'vdScriptStart', 6)
23		TestTools.createVirtualDevice(dummyIdx, 'vdDelay', 6)
24		TestTools.createVirtualDevice(dummyIdx, 'vdScriptEnd', 6)
25		ok, vdScriptOKIdx = TestTools.createVirtualDevice(dummyIdx, 'vdScriptOK', 6)
26		TestTools.createVariable('varInt', 0, 0)
27		ok, scSwitchIdx = TestTools.createVirtualDevice(dummyIdx, 'sceneSilentSwitch1', 6)
28		TestTools.createVirtualDevice(dummyIdx, 'vdTempHumBaro', 84)
29
30		TestTools.createScene('scScene')
31		TestTools.addSceneDevice(sceneIdx, scSwitchIdx)
32
33		TestTools.installFSScripts(fsScripts)
34
35
36	end)
37
38	teardown(function()
39		TestTools.cleanupFSScripts(fsScripts)
40	end)
41
42	before_each(function()
43	end)
44
45	after_each(function() end)
46
47	local dummyIdx
48
49	describe('Start the tests', function()
50
51		it('Should all just work fine', function()
52			socket.sleep(2) -- make sure the first lastUpdate check is at least 2 seconds ago
53			local ok = TestTools.switch(vdScriptStartIdx, 'On')
54			assert.is_true(ok)
55		end)
56
57		it('Should have succeeded', function()
58
59			socket.sleep(16) -- the trigger for stage 2 has a delay set to 4 seconds (afterSec(4))
60
61			local ok = false
62			local vdOKDevice
63
64			ok, vdOKDevice = TestTools.getDevice(vdScriptOKIdx)
65			assert.is_true(ok)
66			assert.is_same('On', vdOKDevice['Status'])
67
68		end)
69
70	end)
71
72
73end);
74