43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import { supportsFeature } from '../../src/ha/supports-feature';
|
|
import { createStateEntity } from '../test-utils';
|
|
|
|
describe('supportsFeature', () => {
|
|
it('returns true if the feature bit is set', () => {
|
|
const stateObj = createStateEntity({
|
|
attributes: { supported_features: 4 },
|
|
});
|
|
expect(supportsFeature(stateObj, 4)).toBe(true);
|
|
});
|
|
|
|
it('returns false if the feature bit is not set', () => {
|
|
const stateObj = createStateEntity({
|
|
attributes: { supported_features: 2 },
|
|
});
|
|
expect(supportsFeature(stateObj, 4)).toBe(false);
|
|
});
|
|
|
|
it('returns false if supported_features is undefined', () => {
|
|
const stateObj = createStateEntity({
|
|
attributes: {},
|
|
});
|
|
expect(supportsFeature(stateObj, 1)).toBe(false);
|
|
});
|
|
|
|
it('returns true if multiple feature bits are set and one matches', () => {
|
|
const stateObj = createStateEntity({
|
|
attributes: { supported_features: 6 }, // 2 + 4
|
|
});
|
|
expect(supportsFeature(stateObj, 2)).toBe(true);
|
|
expect(supportsFeature(stateObj, 4)).toBe(true);
|
|
});
|
|
|
|
it('returns false if feature is 0', () => {
|
|
const stateObj = createStateEntity({
|
|
attributes: { supported_features: 7 },
|
|
});
|
|
expect(supportsFeature(stateObj, 0)).toBe(false);
|
|
});
|
|
});
|