diff --git a/src/schemas/numberTokenSchema.test.ts b/src/schemas/numberTokenSchema.test.ts index 9b8d83ba4..6c5074565 100644 --- a/src/schemas/numberTokenSchema.test.ts +++ b/src/schemas/numberTokenSchema.test.ts @@ -55,4 +55,27 @@ describe('Schema: numberToken', () => { }).success, ).toStrictEqual(false) }) + + it('fails on wrong value', () => { + // invalid string + expect( + numberToken.safeParse({ + ...validToken, + $value: 'string', + }).success, + ).toStrictEqual(false) + // undefined + expect( + numberToken.safeParse({ + ...validToken, + $value: undefined, + }).success, + ).toStrictEqual(false) + // no type + expect( + numberToken.safeParse({ + $value: false, + }).success, + ).toStrictEqual(false) + }) }) diff --git a/src/schemas/stringTokenSchema.test.ts b/src/schemas/stringTokenSchema.test.ts new file mode 100644 index 000000000..184aa5c5a --- /dev/null +++ b/src/schemas/stringTokenSchema.test.ts @@ -0,0 +1,80 @@ +import {stringToken} from './stringToken' + +describe('Schema: stringToken', () => { + const validToken = { + $value: 'a string', + $type: 'string', + $description: 'a string token', + } + + it('parses valid string tokens', () => { + expect(stringToken.safeParse(validToken).success).toStrictEqual(true) + }) + + it('fails on invalid properties', () => { + // additional element + expect( + stringToken.safeParse({ + ...validToken, + additional: 1000, + }).success, + ).toStrictEqual(false) + // missing value + expect( + stringToken.safeParse({ + $type: 'string', + }).success, + ).toStrictEqual(false) + // missing type + expect( + stringToken.safeParse({ + $value: 'a string', + }).success, + ).toStrictEqual(false) + }) + + it('fails on wrong type', () => { + expect( + stringToken.safeParse({ + ...validToken, + $type: 'motion', + }).success, + ).toStrictEqual(false) + // undefined + expect( + stringToken.safeParse({ + ...validToken, + $type: undefined, + }).success, + ).toStrictEqual(false) + // no type + expect( + stringToken.safeParse({ + $value: 'a string', + }).success, + ).toStrictEqual(false) + }) + + it('fails on wrong value', () => { + // invalid string + expect( + stringToken.safeParse({ + ...validToken, + $value: 100, + }).success, + ).toStrictEqual(false) + // undefined + expect( + stringToken.safeParse({ + ...validToken, + $value: undefined, + }).success, + ).toStrictEqual(false) + // no type + expect( + stringToken.safeParse({ + $value: false, + }).success, + ).toStrictEqual(false) + }) +})