mitch7391 / homebridge-cmd4-AdvantageAir

Catered shell script to integrate air conditioner control units by Advantage Air into HomeKit using the plug-in homebridge-cmd4.
MIT License
38 stars 4 forks source link

[Pull Request] B fix unit tests #41

Closed ztalbot2000 closed 2 years ago

ztalbot2000 commented 2 years ago

name: John Talbot about: Resolve an issue or add an improvement to homebridge-cmd4-AdvantageAir. title: "[Pull Request]" labels: pull-request assignees: mitch7391


Fix the ability to run unit tests

Is your pull request related to a problem or a new feature? Please describe: Caching changed name and path of expected data

Describe the solution you'd have implemented: Added a new constant for unit test data files

Do your changes pass local testing:

Additional context:

mitch7391 commented 2 years ago

Hey @ztalbot2000 I just noticed a few of the unit tests fail for me; is this ok?

pi@homebridge:/tmp/homebridge-cmd4-AdvantageAir $ npm run test

> homebridge-cmd4-advantageair@3.3.0-beta.1 pretest
> if [ ! -d 'node_modules' ];then printf ' test is only done in a development environment
> ';exit 1; fi

> homebridge-cmd4-advantageair@3.3.0-beta.1 test
> npm run allBats && npm run testjs && npm run check && npm run lint

> homebridge-cmd4-advantageair@3.3.0-beta.1 allBats
> bats test/*.bats

 ✓ AdvAir ( ezone inline ) Test PassOn5 Get Brightness z01
 ✓ AdvAir ( ezone inline ) Test PassOn1 Get Brightness z01
 ✓ AdvAir ( ezone inline ) Test PassOn3 Get Brightness z01
 ✓ AdvAir ( ezone inline ) Test FailOn5 Get Brightness z01
 ✓ AdvAir ( ezone inline ) Test PassOn1 Get Brightness z03
 ✓ AdvAir ( ezone inline ) Test PassOn5 Get CurrentHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test PassOn1 Get CurrentHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test PassOn3 Get CurrentHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test PassOn5 Get CurrentHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test FailOn5 Get CurrentHeatingCoolingState
 ✓ AdvAir ( ezone inline ) Test PassOn5 Get CurrentTemperature
 ✓ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature
 ✓ AdvAir ( ezone inline ) Test PassOn3 Get CurrentTemperature
 ✓ AdvAir ( ezone inline ) Test FailOn5 Get CurrentTemperature
 ✓ AdvAir ( zones inline ) Test PassOn1 Get CurrentTemperature z01
 ✓ AdvAir ( zones inline ) Test PassOn3 Get CurrentTemperature z01
 ✓ AdvAir ( zones inline ) Test PassOn5 Get CurrentTemperature z01
 ✓ AdvAir ( zones inline ) Test FailOn5 Get CurrentTemperature z01
 ✓ AdvAir ( zones inline ) Test PassOn1 Get CurrentTemperature z03
 ✗ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature noSensors
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/GetCurrentTemperature.bats, line 188)
     `assert_equal "$status" "$e_status"' failed

   -- values do not equal --
   expected : 0
   actual   : 1
   --

 ✓ AdvAir ( ezone inline ) Test PassOn5 Get On
 ✓ AdvAir ( ezone        ) Test PassOn1 Get On
 ✓ AdvAir ( ezone        ) Test PassOn3 Get On
 ✓ AdvAir ( ezone        ) Test PassOn5 Get On
 ✓ AdvAir ( ezone        ) Test FailOn5 Get On
 ✓ AdvAir ( zones        ) Test PassOn1 Get On z01
 ✓ AdvAir ( zones        ) Test PassOn3 Get On z01
 ✓ AdvAir ( zones        ) Test PassOn5 Get On z01
 ✓ AdvAir ( zones        ) Test FailOn5 Get On z01
 ✓ AdvAir ( zones inline ) Test PassOn5 Get StatusLowBattery z01
 ✓ AdvAir ( zones        ) Test PassOn1 Get StatusLowBattery z01
 ✓ AdvAir ( zones        ) Test PassOn3 Get StatusLowBattery z01
 ✓ AdvAir ( zones        ) Test PassOn5 Get StatusLowBattery z01
 ✓ AdvAir ( zones        ) Test FailOn5 Get StatusLowBattery z01
 ✓ AdvAir ( ezone inline ) Test PassOn5 Get TargetHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test PassOn1 Get TargetHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test PassOn3 Get TargetHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test PassOn5 Get TargetHeatingCoolingState
 ✓ AdvAir ( ezone        ) Test FailOn5 Get TargetHeatingCoolingState
 ✓ AdvAir ( ezone inline ) Test PassOn5 Get TargetTemperature
 ✓ AdvAir ( ezone        ) Test PassOn1 Get TargetTemperature
 ✓ AdvAir ( ezone        ) Test PassOn3 Get TargetTemperature
 ✓ AdvAir ( ezone        ) Test PassOn5 Get TargetTemperature
 ✓ AdvAir ( ezone        ) Test FailOn5 Get TargetTemperature
 ✓ AdvAir ( ezone inline ) Get PassOn1 TemperatureDisplayUnits ( inline )
 ✓ AdvAir ( ezone       ) Get PassOn1 TemperatureDisplayUnits ( inline )
 ✓ AdvAir ( ezone inline ) Test Invalid Option 'BLAH'
 ✓ AdvAir ( ezone inline ) Test IP PassOn1
 - AdvAir ( ezone / zone ) Test ../homebridge.log.txt (skipped: Skipping test. No ../homebridge.log.txt from /tmp/homebridge-cmd4-AdvantageAir/test)
 ✗ AdvAir ( ezone inline ) Test PassOn5 Set On 1
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 23)
     `assert_equal "$status" "$e_status"' failed

   -- values do not equal --
   expected : 0
   actual   : 1
   --

 ✗ AdvAir ( ezone inline ) Test PassOn3 Set On 1
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 36)
     `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

   -- values do not equal --
   expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{info:{state:on,mode:vent,fan:auto}}}
   actual   : 
   --

 ✗ AdvAir ( ezone inline ) Test FailOn5 Set On 1
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 47)
     `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

   -- values do not equal --
   expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{info:{state:on,mode:vent,fan:auto}}}
   actual   : 
   --

 ✗ AdvAir ( zones inline ) Test PassOn1 Set On 1 z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 62)
     `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

   -- values do not equal --
   expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}}
   actual   : 
   --

 ✗ AdvAir ( zones inline ) Test PassOn3 Set On 1 z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 73)
     `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

   -- values do not equal --
   expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}}
   actual   : 
   --

 ✗ AdvAir ( zones inline ) Test PassOn5 Set On 1 z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 84)
     `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

   -- values do not equal --
   expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}}
   actual   : 
   --

 ✗ AdvAir ( zones inline ) Test FailOn5 Set On 1 z01
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetOn.bats, line 95)
     `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

   -- values do not equal --
   expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}}
   actual   : 
   --

 ✗ AdvAir ( ezone inline ) Test PassOn1 Set TargetHeatingCoolingState 1
   (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,
    in test file test/SetTargetHeatingCoolingState.bats, line 23)
     `assert_equal "$status" "$e_status" ]' failed

   -- values do not equal --
   expected : 0
   actual   : 1
   --

 - Sample Test (How to Skip) (skipped: This test is skipped just to show that skippping can be done.)
 ✓ Sample Test Check Status of run command
 ✓ Sample Test Check stdout of command

60 tests, 9 failures, 2 skipped
ztalbot2000 commented 2 years ago

Hey Mitch,

I just mentioned those. L-). I have to look at why some are failing. They could be issues, but they might just be logic changes. The point is, most work now.

ttyl, John

On Mon, Feb 14, 2022 at 4:26 AM Mitch Williams @.***> wrote:

Hey @ztalbot2000 https://github.com/ztalbot2000 I just noticed a few of the unit tests fail for me; is this ok?

@.***:/tmp/homebridge-cmd4-AdvantageAir $ npm run test

@.*** pretest if [ ! -d 'node_modules' ];then printf ' test is only done in a development environment ';exit 1; fi

@.*** test npm run allBats && npm run testjs && npm run check && npm run lint

@.** allBats bats test/.bats

✓ AdvAir ( ezone inline ) Test PassOn5 Get Brightness z01

✓ AdvAir ( ezone inline ) Test PassOn1 Get Brightness z01

✓ AdvAir ( ezone inline ) Test PassOn3 Get Brightness z01

✓ AdvAir ( ezone inline ) Test FailOn5 Get Brightness z01

✓ AdvAir ( ezone inline ) Test PassOn1 Get Brightness z03

✓ AdvAir ( ezone inline ) Test PassOn5 Get CurrentHeatingCoolingState

✓ AdvAir ( ezone ) Test PassOn1 Get CurrentHeatingCoolingState

✓ AdvAir ( ezone ) Test PassOn3 Get CurrentHeatingCoolingState

✓ AdvAir ( ezone ) Test PassOn5 Get CurrentHeatingCoolingState

✓ AdvAir ( ezone ) Test FailOn5 Get CurrentHeatingCoolingState

✓ AdvAir ( ezone inline ) Test PassOn5 Get CurrentTemperature

✓ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature

✓ AdvAir ( ezone inline ) Test PassOn3 Get CurrentTemperature

✓ AdvAir ( ezone inline ) Test FailOn5 Get CurrentTemperature

✓ AdvAir ( zones inline ) Test PassOn1 Get CurrentTemperature z01

✓ AdvAir ( zones inline ) Test PassOn3 Get CurrentTemperature z01

✓ AdvAir ( zones inline ) Test PassOn5 Get CurrentTemperature z01

✓ AdvAir ( zones inline ) Test FailOn5 Get CurrentTemperature z01

✓ AdvAir ( zones inline ) Test PassOn1 Get CurrentTemperature z03

✗ AdvAir ( ezone inline ) Test PassOn1 Get CurrentTemperature noSensors

(from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,

in test file test/GetCurrentTemperature.bats, line 188)

 `assert_equal "$status" "$e_status"' failed

-- values do not equal -- expected : 0 actual : 1

✓ AdvAir ( ezone inline ) Test PassOn5 Get On ✓ AdvAir ( ezone ) Test PassOn1 Get On ✓ AdvAir ( ezone ) Test PassOn3 Get On ✓ AdvAir ( ezone ) Test PassOn5 Get On ✓ AdvAir ( ezone ) Test FailOn5 Get On ✓ AdvAir ( zones ) Test PassOn1 Get On z01 ✓ AdvAir ( zones ) Test PassOn3 Get On z01 ✓ AdvAir ( zones ) Test PassOn5 Get On z01 ✓ AdvAir ( zones ) Test FailOn5 Get On z01 ✓ AdvAir ( zones inline ) Test PassOn5 Get StatusLowBattery z01 ✓ AdvAir ( zones ) Test PassOn1 Get StatusLowBattery z01 ✓ AdvAir ( zones ) Test PassOn3 Get StatusLowBattery z01 ✓ AdvAir ( zones ) Test PassOn5 Get StatusLowBattery z01 ✓ AdvAir ( zones ) Test FailOn5 Get StatusLowBattery z01 ✓ AdvAir ( ezone inline ) Test PassOn5 Get TargetHeatingCoolingState ✓ AdvAir ( ezone ) Test PassOn1 Get TargetHeatingCoolingState ✓ AdvAir ( ezone ) Test PassOn3 Get TargetHeatingCoolingState ✓ AdvAir ( ezone ) Test PassOn5 Get TargetHeatingCoolingState ✓ AdvAir ( ezone ) Test FailOn5 Get TargetHeatingCoolingState ✓ AdvAir ( ezone inline ) Test PassOn5 Get TargetTemperature ✓ AdvAir ( ezone ) Test PassOn1 Get TargetTemperature ✓ AdvAir ( ezone ) Test PassOn3 Get TargetTemperature ✓ AdvAir ( ezone ) Test PassOn5 Get TargetTemperature ✓ AdvAir ( ezone ) Test FailOn5 Get TargetTemperature ✓ AdvAir ( ezone inline ) Get PassOn1 TemperatureDisplayUnits ( inline ) ✓ AdvAir ( ezone ) Get PassOn1 TemperatureDisplayUnits ( inline ) ✓ AdvAir ( ezone inline ) Test Invalid Option 'BLAH' ✓ AdvAir ( ezone inline ) Test IP PassOn1

  • AdvAir ( ezone / zone ) Test ../homebridge.log.txt (skipped: Skipping test. No ../homebridge.log.txt from /tmp/homebridge-cmd4-AdvantageAir/test) ✗ AdvAir ( ezone inline ) Test PassOn5 Set On 1 (from function assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91, in test file test/SetOn.bats, line 23) assert_equal "$status" "$e_status"' failed

    -- values do not equal -- expected : 0 actual : 1

    ✗ AdvAir ( ezone inline ) Test PassOn3 Set On 1 (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,

    in test file test/SetOn.bats, line 36)

    `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

    -- values do not equal -- expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{info:{state:on,mode:vent,fan:auto}}} actual :

    ✗ AdvAir ( ezone inline ) Test FailOn5 Set On 1 (from function assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91, in test file test/SetOn.bats, line 47) assert_equal "${lines[0]}" "${e_lines[0]}"' failed

    -- values do not equal -- expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{info:{state:on,mode:vent,fan:auto}}} actual :

    ✗ AdvAir ( zones inline ) Test PassOn1 Set On 1 z01 (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,

    in test file test/SetOn.bats, line 62)

    `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

    -- values do not equal -- expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}} actual :

    ✗ AdvAir ( zones inline ) Test PassOn3 Set On 1 z01 (from function assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91, in test file test/SetOn.bats, line 73) assert_equal "${lines[0]}" "${e_lines[0]}"' failed

    -- values do not equal -- expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}} actual :

    ✗ AdvAir ( zones inline ) Test PassOn5 Set On 1 z01 (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,

    in test file test/SetOn.bats, line 84)

    `assert_equal "${lines[0]}" "${e_lines[0]}"' failed

    -- values do not equal -- expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}} actual :

    ✗ AdvAir ( zones inline ) Test FailOn5 Set On 1 z01 (from function assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91, in test file test/SetOn.bats, line 95) assert_equal "${lines[0]}" "${e_lines[0]}"' failed

    -- values do not equal -- expected : Setting url: http://192.168.0.173:2025/setAircon?json={ac1:{zones:{z01:{state:open}}}} actual :

    ✗ AdvAir ( ezone inline ) Test PassOn1 Set TargetHeatingCoolingState 1 (from function `assert_equal' in file node_modules/bats-assert/src/assert.bash, line 91,

    in test file test/SetTargetHeatingCoolingState.bats, line 23)

    `assert_equal "$status" "$e_status" ]' failed

    -- values do not equal -- expected : 0 actual : 1

  • Sample Test (How to Skip) (skipped: This test is skipped just to show that skippping can be done.) ✓ Sample Test Check Status of run command ✓ Sample Test Check stdout of command

60 tests, 9 failures, 2 skipped

— Reply to this email directly, view it on GitHub https://github.com/mitch7391/homebridge-cmd4-AdvantageAir/pull/41#issuecomment-1038851350, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSBCX7OUEDH6QOKXFG43T3U3DDEPANCNFSM5OKKNEOA . You are receiving this because you were mentioned.Message ID: @.***>