mirror of
https://activitypub.software/TransFem-org/sfm-js
synced 2024-11-29 09:23:05 +00:00
31 lines
892 B
TypeScript
31 lines
892 B
TypeScript
|
import assert from 'assert';
|
||
|
import * as P from '../src/internal/core';
|
||
|
|
||
|
describe('core', () => {
|
||
|
describe('difference', () => {
|
||
|
test('basic', () => {
|
||
|
const parser = P.difference(P.regexp(/\p{Letter}/u), P.str('x'));
|
||
|
|
||
|
let result = parser.handler('x',0,{}) as P.Success<any>;
|
||
|
assert.deepStrictEqual(result,P.failure());
|
||
|
|
||
|
result = parser.handler('a',0,{}) as P.Success<any>;
|
||
|
assert.deepStrictEqual(result,P.success(1,'a'));
|
||
|
});
|
||
|
|
||
|
test('horizontal whitespace', () => {
|
||
|
const parser = P.difference(P.regexp(/\s/u), P.newline);
|
||
|
|
||
|
let result = parser.handler('\n',0,{}) as P.Success<any>;
|
||
|
assert.deepStrictEqual(result,P.failure());
|
||
|
|
||
|
result = parser.handler(' ',0,{}) as P.Success<any>;
|
||
|
assert.deepStrictEqual(result,P.success(1,' '));
|
||
|
|
||
|
result = parser.handler('\t',0,{}) as P.Success<any>;
|
||
|
assert.deepStrictEqual(result,P.success(1,'\t'));
|
||
|
});
|
||
|
|
||
|
});
|
||
|
});
|