UNPKG

@ryusei/light

Version:

<div align="center"> <a href="https://light.ryuseijs.com"> <img alt="RyuseiLight" src="https://light.ryuseijs.com/images/svg/logo.svg" width="70"> </a>

44 lines (38 loc) 1.16 kB
import { CATEGORY_DECORATOR, CATEGORY_BRACKET, CATEGORY_STRING, CATEGORY_KEYWORD, CATEGORY_CLASS, CATEGORY_FUNCTION, } from '../../../constants/categories'; describe( 'javascript', () => { test( 'can tokenize decorators.', () => { expect( '@decorator' ).toBeTokenized( 'javascript', [ [ CATEGORY_DECORATOR, '@decorator' ] ] ); expect( `@decorator( 'param' )` ).toBeTokenized( 'javascript', [ [ CATEGORY_DECORATOR, '@decorator' ], [ CATEGORY_BRACKET, '(' ], [ CATEGORY_STRING, `'param'` ], [ CATEGORY_BRACKET, ')' ], ] ); } ); test( 'can tokenize decorators in a class.', () => { const input = ` class MyClass { @decorator init() {} } `; expect( input ).toBeTokenized( 'javascript', [ [ CATEGORY_KEYWORD, 'class' ], [ CATEGORY_CLASS, 'MyClass' ], [ CATEGORY_BRACKET, '{' ], [ CATEGORY_DECORATOR, '@decorator' ], [ CATEGORY_FUNCTION, 'init' ], [ CATEGORY_BRACKET, '(' ], [ CATEGORY_BRACKET, ')' ], [ CATEGORY_BRACKET, '{' ], [ CATEGORY_BRACKET, '}' ], [ CATEGORY_BRACKET, '}' ], ] ); } ); } );