UNPKG

@sutton-signwriting/core

Version:

a javascript package for node and browsers that supports general processing of the Sutton SignWriting script

101 lines (97 loc) 2.24 kB
import { compose } from './style-compose'; it('should compose style strings', () => { expect(compose({})).toBe('-'); expect(compose({ 'colorize': true, 'padding': 10, 'background': 'blue', 'detail': ['red', 'Cyan'] })).toBe('-CP10G_blue_D_red,Cyan_'); expect(compose({ 'detailsym': [ { 'index': 1, 'detail': ['yellow'] } ] })).toBe('--D01_yellow_'); expect(compose({ 'zoom': 'x' })).toBe('-Zx'); expect(compose({ 'background': '#eee', 'detail': ['#fff'], 'detailsym': [ { 'index': 1, 'detail': ['#aaa', '#bababa'] } ] })).toBe('-G_eee_D_fff_-D01_aaa,bababa_'); expect(compose({ 'classes': 'myclass' })).toBe('---myclass!'); expect(compose({ 'id': 'myid' })).toBe('---!myid!'); expect(compose({ 'colorize': true, 'padding': 10, 'background': 'blue', 'detail': ['red', 'Cyan'], 'zoom': 1.1, 'detailsym': [ { 'index': 1, 'detail': ['#ff00ff'] }, { 'index': 2, 'detail': ['yellow', 'green'] } ], 'classes': 'primary blinking', 'id': 'cursor' })).toBe('-CP10G_blue_D_red,Cyan_Z1.1-D01_ff00ff_D02_yellow,green_-primary blinking!cursor!'); }) it('should compose without breaking on bad data', () => { expect(compose()).toBe(undefined); expect(compose({ 'colorize': 'C', 'padding': -1, 'background': '$color', 'detail': 'red', 'zoom': -2, 'detailsym': { 'index': 0, 'detail': 'green' }, 'zoomsym': { 'index': 'a', 'zoom': 'b', 'offset': '500x500' }, 'classes': '%ox', 'id': 'my@' })).toBe('-CG_color_D_r,e_--ox!my!'); expect(compose({ 'padding': 'a', 'background': 5, 'detail': [1], 'zoom': "B", 'detailsym': [0, 'green'], 'zoomsym': ["index", [0]], 'classes': ['%ox'], 'id': { 'index': 'what?' } })).toBe('-'); expect(compose({ 'padding': [3, 5], 'background': ['yellow'], 'detail': { 'a': 5 }, 'zoom': [1], 'detailsym': [0, 'green'], 'id': 6 })).toBe('-P03Z1'); })