diff options
| author | Akshay Nair <phenax5@gmail.com> | 2023-01-13 19:21:41 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2023-01-13 19:21:41 +0530 |
| commit | 8ba316461d2dc0a1372af16836ce14ceabc2bf4f (patch) | |
| tree | afcd80654b1e83fe78fcb4bf69a71f730ee3e299 /src/eval-env/test.ts | |
| parent | fe710f58a982e31e64c02d887567bcd9a4108b24 (diff) | |
| download | ts-types-lang-8ba316461d2dc0a1372af16836ce14ceabc2bf4f.tar.gz ts-types-lang-8ba316461d2dc0a1372af16836ce14ceabc2bf4f.zip | |
feat: adds test to stdlib + refactors runtime environment
Diffstat (limited to 'src/eval-env/test.ts')
| -rw-r--r-- | src/eval-env/test.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/eval-env/test.ts b/src/eval-env/test.ts new file mode 100644 index 0000000..c394752 --- /dev/null +++ b/src/eval-env/test.ts @@ -0,0 +1,31 @@ +import { Type } from 'ts-morph' +import { Ctx } from '../types' + +export const cleanup = () => {} + +export default (ctx: Ctx, args: Type[]) => ({ + Test: async () => { + const [msg, effs] = args + process.stdout.write(` - ${ctx.getTypeValue(msg)}`) + + try { + for (const eff of effs?.getTupleElements() ?? []) { + await ctx.evaluateType(ctx, eff) + } + + console.log(' [✓]') + } catch(e) { + console.log(' [TEST FAILED]') + throw e + } + return [] + }, + + Assert: async () => { + const [b] = args + if (!ctx.getTypeValue(b)) { + throw new Error('Assertion failed') + } + return [] + }, +}) |
