58 lines
1.2 KiB
JavaScript
58 lines
1.2 KiB
JavaScript
import { assert } from 'chai';
|
|
|
|
import canToggleState from '../../../js/common/util/can_toggle_state';
|
|
|
|
describe('canToggleState', () => {
|
|
const hass = {
|
|
config: {
|
|
services: {
|
|
light: {
|
|
turn_on: null, // Service keys only need to be present for test
|
|
turn_off: null,
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
it('Detects lights toggle', () => {
|
|
const stateObj = {
|
|
entity_id: 'light.bla',
|
|
state: 'on',
|
|
};
|
|
assert.isTrue(canToggleState(hass, stateObj));
|
|
});
|
|
|
|
it('Detects group with toggle', () => {
|
|
const stateObj = {
|
|
entity_id: 'group.bla',
|
|
state: 'on',
|
|
};
|
|
assert.isTrue(canToggleState(hass, stateObj));
|
|
});
|
|
|
|
it('Detects group without toggle', () => {
|
|
const stateObj = {
|
|
entity_id: 'group.devices',
|
|
state: 'home',
|
|
};
|
|
assert.isFalse(canToggleState(hass, stateObj));
|
|
});
|
|
|
|
it('Detects climate with toggle', () => {
|
|
const stateObj = {
|
|
entity_id: 'climate.bla',
|
|
attributes: {
|
|
supported_features: 4096,
|
|
},
|
|
};
|
|
assert.isTrue(canToggleState(hass, stateObj));
|
|
});
|
|
|
|
it('Detects climate without toggle', () => {
|
|
const stateObj = {
|
|
entity_id: 'climate.bla',
|
|
};
|
|
assert.isFalse(canToggleState(hass, stateObj));
|
|
});
|
|
});
|