Add presets.js as single source of truth for filter definitions
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { PRESETS, DEFAULT_PRESET, isValidPresetSlug } from '../../src/presets';
|
||||
|
||||
describe( 'presets', () => {
|
||||
test( 'exports 8 presets', () => {
|
||||
expect( PRESETS ).toHaveLength( 8 );
|
||||
} );
|
||||
|
||||
test( 'each preset has the required shape', () => {
|
||||
for ( const preset of PRESETS ) {
|
||||
expect( preset ).toEqual(
|
||||
expect.objectContaining( {
|
||||
slug: expect.stringMatching( /^[a-z-]+$/ ),
|
||||
label: expect.any( String ),
|
||||
color: expect.stringMatching( /^#[0-9a-f]{3,6}$/i ),
|
||||
cssFilter: expect.any( String ),
|
||||
} )
|
||||
);
|
||||
}
|
||||
} );
|
||||
|
||||
test( 'slugs are unique', () => {
|
||||
const slugs = PRESETS.map( ( p ) => p.slug );
|
||||
expect( new Set( slugs ).size ).toBe( slugs.length );
|
||||
} );
|
||||
|
||||
test( 'normal preset has filter: none', () => {
|
||||
const normal = PRESETS.find( ( p ) => p.slug === 'normal' );
|
||||
expect( normal.cssFilter ).toBe( 'none' );
|
||||
} );
|
||||
|
||||
test( 'DEFAULT_PRESET is "normal" and exists in PRESETS', () => {
|
||||
expect( DEFAULT_PRESET ).toBe( 'normal' );
|
||||
expect( PRESETS.map( ( p ) => p.slug ) ).toContain( DEFAULT_PRESET );
|
||||
} );
|
||||
|
||||
test( 'isValidPresetSlug returns true for known slugs', () => {
|
||||
expect( isValidPresetSlug( 'normal' ) ).toBe( true );
|
||||
expect( isValidPresetSlug( 'dramatic' ) ).toBe( true );
|
||||
} );
|
||||
|
||||
test( 'isValidPresetSlug returns false for unknown slugs', () => {
|
||||
expect( isValidPresetSlug( 'foobar' ) ).toBe( false );
|
||||
expect( isValidPresetSlug( '' ) ).toBe( false );
|
||||
} );
|
||||
} );
|
||||
Reference in New Issue
Block a user