import { getColour } from './getColour'; import { color } from '../tokens'; import { ThemeNames } from '../../utils'; describe('@lendi-ui/commons/colour: select()', () => { describe('when no option is passed, it should default to `lendi`', () => { it('should return correct values', () => { expect(getColour('primary', '500')).toEqual(color.lendi.base.primary['500']?.value); expect(getColour('interaction', 'main')).toEqual(color.lendi.semantic.interaction.main?.value); expect(getColour('border', 'container')).toEqual(color.lendi.semantic.border.container?.value); expect(getColour('border', 'interaction')).toEqual(color.lendi.semantic.border.interaction.default?.value); expect(getColour('border', 'interaction', { state: 'focus' })).toEqual( color.lendi.semantic.border.interaction.focus?.value ); }); }); describe('when calling getColour for `lendi`', () => { it('should return correct values', () => { const options = { theme: ThemeNames.Lendi, }; expect(getColour('primary', '500', options)).toEqual(color.lendi.base.primary['500']?.value); expect(getColour('interaction', 'main', options)).toEqual(color.lendi.semantic.interaction.main?.value); expect(getColour('border', 'container', options)).toEqual(color.lendi.semantic.border.container?.value); expect(getColour('border', 'interaction', options)).toEqual( color.lendi.semantic.border.interaction.default?.value ); expect(getColour('border', 'interaction', { ...options, state: 'focus' })).toEqual( color.lendi.semantic.border.interaction.focus?.value ); }); }); describe('when calling getColour for `lendiNext`', () => { it('should return correct values', () => { const options = { theme: ThemeNames.LendiNext, }; // expect(getColour('primary', '500', options)).toEqual(color.lendiNext.primary['500']?.value); // LendiNext has no 'primary' color expect(getColour('interaction', 'main', options)).toEqual(color.lendiNext.semantic.interaction.main?.value); expect(getColour('border', 'container', options)).toEqual(color.lendiNext.semantic.border.container?.value); expect(getColour('border', 'interaction', options)).toEqual( color.lendiNext.semantic.border.interaction.default?.value ); expect(getColour('border', 'interaction', { ...options, state: 'focus' })).toEqual( color.lendiNext.semantic.border.interaction.focus?.value ); }); }); describe('when calling getColour for `domain`', () => { it('should return correct values', () => { const options = { theme: ThemeNames.Domain, }; expect(getColour('primary', '500', options)).toEqual(color.domain.base.primary['500']?.value); expect(getColour('interaction', 'main', options)).toEqual(color.domain.semantic.interaction.main?.value); expect(getColour('border', 'container', options)).toEqual(color.domain.semantic.border.container?.value); expect(getColour('border', 'interaction', options)).toEqual( color.domain.semantic.border.interaction.default?.value ); expect(getColour('border', 'interaction', { ...options, state: 'focus' })).toEqual( color.domain.semantic.border.interaction.focus?.value ); }); }); describe('when calling getColour for `aussie`', () => { it('should return correct values', () => { const options = { theme: ThemeNames.Aussie, }; // expect(getColour('primary', '500', options)).toEqual(color.aussie.primary['500']?.value); // Aussie has no 'primary' color expect(getColour('interaction', 'main', options)).toEqual(color.aussie.semantic.interaction.main?.value); expect(getColour('border', 'container', options)).toEqual(color.aussie.semantic.border.container?.value); expect(getColour('border', 'interaction', options)).toEqual( color.aussie.semantic.border.interaction.default?.value ); expect(getColour('border', 'interaction', { ...options, state: 'focus' })).toEqual( color.aussie.semantic.border.interaction.focus?.value ); }); }); });