Files
advanced-camera-card/tests/ha/supports-feature.test.ts
T

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);
});
});