ipsos-components
Version:
Material Design components for Angular
36 lines (24 loc) • 1.3 kB
text/typescript
import {mixinDisableRipple} from './disable-ripple';
describe('mixinDisableRipple', () => {
it('should augment an existing class with a disableRipple property', () => {
const classWithMixin = mixinDisableRipple(TestClass);
const instance = new classWithMixin();
expect(instance.disableRipple)
.toBe(false, 'Expected the mixed-into class to have a disable-ripple property');
instance.disableRipple = true;
expect(instance.disableRipple)
.toBe(true, 'Expected the mixed-into class to have an updated disable-ripple property');
});
it('should coerce values being passed to the disableRipple property', () => {
const classWithMixin = mixinDisableRipple(TestClass);
const instance = new classWithMixin();
expect(instance.disableRipple)
.toBe(false, 'Expected disableRipple to be set to false initially');
// Setting string values to the disableRipple property should be prevented by TypeScript's
// type checking, but developers can still set string values from their template bindings.
(instance as any).disableRipple = '';
expect(instance.disableRipple)
.toBe(true, 'Expected disableRipple to be set to true if an empty string is set as value');
});
});
class TestClass {}