diff options
Diffstat (limited to 'tests/specs/npm')
| -rw-r--r-- | tests/specs/npm/esm_import_cjs_default/__test__.jsonc | 4 | ||||
| -rw-r--r-- | tests/specs/npm/esm_import_cjs_default/main.out | 58 | ||||
| -rw-r--r-- | tests/specs/npm/esm_import_cjs_default/main.ts | 23 | ||||
| -rw-r--r-- | tests/specs/npm/no_types_cjs/__test__.jsonc | 4 | ||||
| -rw-r--r-- | tests/specs/npm/no_types_cjs/main.out | 3 | ||||
| -rw-r--r-- | tests/specs/npm/no_types_cjs/main.ts | 7 | ||||
| -rw-r--r-- | tests/specs/npm/no_types_in_conditional_exports/__test__.jsonc | 4 | ||||
| -rw-r--r-- | tests/specs/npm/no_types_in_conditional_exports/main.out | 4 | ||||
| -rw-r--r-- | tests/specs/npm/no_types_in_conditional_exports/main.ts | 2 | ||||
| -rw-r--r-- | tests/specs/npm/types_general/__test__.jsonc | 5 | ||||
| -rw-r--r-- | tests/specs/npm/types_general/main.out | 80 | ||||
| -rw-r--r-- | tests/specs/npm/types_general/main.ts | 27 |
12 files changed, 221 insertions, 0 deletions
diff --git a/tests/specs/npm/esm_import_cjs_default/__test__.jsonc b/tests/specs/npm/esm_import_cjs_default/__test__.jsonc new file mode 100644 index 000000000..b2a25914f --- /dev/null +++ b/tests/specs/npm/esm_import_cjs_default/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --allow-read --allow-env --check=all main.ts", + "output": "main.out" +} diff --git a/tests/specs/npm/esm_import_cjs_default/main.out b/tests/specs/npm/esm_import_cjs_default/main.out new file mode 100644 index 000000000..ec7962e5a --- /dev/null +++ b/tests/specs/npm/esm_import_cjs_default/main.out @@ -0,0 +1,58 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/esm-import-cjs-default +Download http://localhost:4260/@denotest/cjs-default-export +Download http://localhost:4260/@denotest/cjs-default-export/1.0.0.tgz +Download http://localhost:4260/@denotest/esm-import-cjs-default/1.0.0.tgz +[UNORDERED_END] +Check file:///[WILDLINE]/main.ts +Node esm importing node cjs +=========================== +{ + default: [Function (anonymous)], + named: [Function (anonymous)], + MyClass: [class MyClass] +} +{ default: [Function (anonymous)], named: [Function (anonymous)] } +[Module: null prototype] { + MyClass: [class MyClass], + __esModule: true, + default: { + default: [Function (anonymous)], + named: [Function (anonymous)], + MyClass: [class MyClass] + }, + named: [Function (anonymous)] +} +[Module: null prototype] { + __esModule: true, + default: { default: [Function (anonymous)], named: [Function (anonymous)] }, + named: [Function (anonymous)] +} +=========================== +static method +Deno esm importing node cjs +=========================== +{ + default: [Function (anonymous)], + named: [Function (anonymous)], + MyClass: [class MyClass] +} +[Module: null prototype] { + MyClass: [class MyClass], + __esModule: true, + default: { + default: [Function (anonymous)], + named: [Function (anonymous)], + MyClass: [class MyClass] + }, + named: [Function (anonymous)] +} +=========================== +Deno esm importing node esm +=========================== +[Function: default] +[Module: null prototype] { default: [Function: default] } +=========================== +1 +5 +static method diff --git a/tests/specs/npm/esm_import_cjs_default/main.ts b/tests/specs/npm/esm_import_cjs_default/main.ts new file mode 100644 index 000000000..f9c3280e5 --- /dev/null +++ b/tests/specs/npm/esm_import_cjs_default/main.ts @@ -0,0 +1,23 @@ +// @ts-check +import cjsDefault, { + MyClass as MyCjsClass, +} from "npm:@denotest/cjs-default-export"; +import * as cjsNamespace from "npm:@denotest/cjs-default-export"; +import esmDefault from "npm:@denotest/esm-import-cjs-default"; +import * as esmNamespace from "npm:@denotest/esm-import-cjs-default"; + +console.log("Deno esm importing node cjs"); +console.log("==========================="); +console.log(cjsDefault); +console.log(cjsNamespace); +console.log("==========================="); + +console.log("Deno esm importing node esm"); +console.log("==========================="); +console.log(esmDefault); +console.log(esmNamespace); +console.log("==========================="); + +console.log(cjsDefault.default()); +console.log(esmDefault()); +console.log(MyCjsClass.someStaticMethod()); diff --git a/tests/specs/npm/no_types_cjs/__test__.jsonc b/tests/specs/npm/no_types_cjs/__test__.jsonc new file mode 100644 index 000000000..de0339cfb --- /dev/null +++ b/tests/specs/npm/no_types_cjs/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "check main.ts", + "output": "main.out" +} diff --git a/tests/specs/npm/no_types_cjs/main.out b/tests/specs/npm/no_types_cjs/main.out new file mode 100644 index 000000000..4747a9a32 --- /dev/null +++ b/tests/specs/npm/no_types_cjs/main.out @@ -0,0 +1,3 @@ +Download http://localhost:4260/@denotest/no-types-cjs +Download http://localhost:4260/@denotest/no-types-cjs/1.0.0.tgz +Check file:///[WILDLINE]/no_types_cjs/main.ts diff --git a/tests/specs/npm/no_types_cjs/main.ts b/tests/specs/npm/no_types_cjs/main.ts new file mode 100644 index 000000000..32458e839 --- /dev/null +++ b/tests/specs/npm/no_types_cjs/main.ts @@ -0,0 +1,7 @@ +import mod from "npm:@denotest/no-types-cjs"; + +// it actually returns a `number` and has that in its +// jsdocs, but the jsdocs should not have been resolved so +// this should type check just fine +const value: string = mod(); +console.log(value); diff --git a/tests/specs/npm/no_types_in_conditional_exports/__test__.jsonc b/tests/specs/npm/no_types_in_conditional_exports/__test__.jsonc new file mode 100644 index 000000000..8955fcda2 --- /dev/null +++ b/tests/specs/npm/no_types_in_conditional_exports/__test__.jsonc @@ -0,0 +1,4 @@ +{ + "args": "run --check main.ts", + "output": "main.out" +} diff --git a/tests/specs/npm/no_types_in_conditional_exports/main.out b/tests/specs/npm/no_types_in_conditional_exports/main.out new file mode 100644 index 000000000..46c583234 --- /dev/null +++ b/tests/specs/npm/no_types_in_conditional_exports/main.out @@ -0,0 +1,4 @@ +Download http://localhost:4260/@denotest/no-types-in-conditional-exports +Download http://localhost:4260/@denotest/no-types-in-conditional-exports/1.0.0.tgz +Check [WILDCARD]npm/no_types_in_conditional_exports/main.ts +{ foo: "bar" } diff --git a/tests/specs/npm/no_types_in_conditional_exports/main.ts b/tests/specs/npm/no_types_in_conditional_exports/main.ts new file mode 100644 index 000000000..7ec2f18fd --- /dev/null +++ b/tests/specs/npm/no_types_in_conditional_exports/main.ts @@ -0,0 +1,2 @@ +import foo from "npm:@denotest/no-types-in-conditional-exports@1.0.0"; +console.log(foo); diff --git a/tests/specs/npm/types_general/__test__.jsonc b/tests/specs/npm/types_general/__test__.jsonc new file mode 100644 index 000000000..a991c6eed --- /dev/null +++ b/tests/specs/npm/types_general/__test__.jsonc @@ -0,0 +1,5 @@ +{ + "args": "check main.ts", + "output": "main.out", + "exitCode": 1 +} diff --git a/tests/specs/npm/types_general/main.out b/tests/specs/npm/types_general/main.out new file mode 100644 index 000000000..ffba4f84d --- /dev/null +++ b/tests/specs/npm/types_general/main.out @@ -0,0 +1,80 @@ +[UNORDERED_START] +Download http://localhost:4260/@denotest/types +Download http://localhost:4260/@denotest/types_imported +Download http://localhost:4260/@denotest/types-exports-subpaths +Download http://localhost:4260/@denotest/types_imported/1.0.0.tgz +Download http://localhost:4260/@denotest/types-exports-subpaths/1.0.0.tgz +Download http://localhost:4260/@denotest/types/1.0.0.tgz +[UNORDERED_END] +Check file:///[WILDLINE]/main.ts +error: TS2322 [ERROR]: Type 'number' is not assignable to type 'string'. + bar: 1, + ~~~ + at [WILDCARD]/main.ts:[WILDCARD] + + The expected type comes from property 'bar' which is declared here on type 'Foobar' + bar: string; + ~~~ + at [WILDCARD]/@denotest/types_imported/1.0.0/subpath.d.ts:3:5 + +TS2322 [ERROR]: Type 'number' is not assignable to type 'string'. + prop: 1, + ~~~~ + at [WILDCARD]/main.ts:[WILDCARD] + + The expected type comes from property 'prop' which is declared here on type 'SomeInterface' + prop: string; + ~~~~ + at [WILDCARD]/@denotest/types_imported/1.0.0/index.d.ts:2:5 + +TS2322 [ERROR]: Type 'string' is not assignable to type 'number'. + prop2: "asdf", + ~~~~~ + at [WILDCARD]/main.ts:[WILDCARD] + + The expected type comes from property 'prop2' which is declared here on type 'SomeInterface' + prop2: number; + ~~~~~ + at [WILDCARD]/@denotest/types_imported/1.0.0/index.d.ts:3:5 + +TS2322 [ERROR]: Type 'number' is not assignable to type 'string'. + fizz: 1, + ~~~~ + at [WILDCARD]/main.ts:[WILDCARD] + + The expected type comes from property 'fizz' which is declared here on type 'Fizzbuzz' + fizz: string; + ~~~~ + at [WILDCARD]/@denotest/types/1.0.0/index.d.ts:2:3 + +TS2322 [ERROR]: Type 'number' is not assignable to type 'string'. + buzz: 2, + ~~~~ + at [WILDCARD]/main.ts:[WILDCARD] + + The expected type comes from property 'buzz' which is declared here on type 'Fizzbuzz' + buzz: string; + ~~~~ + at [WILDCARD]/@denotest/types/1.0.0/index.d.ts:3:3 + +TS2322 [ERROR]: Type '5' is not assignable to type '"test1"'. +const valueA: "test1" = getClient(); + ~~~~~~ + at [WILDCARD]/main.ts:[WILDCARD] + +TS2322 [ERROR]: Type '"import"' is not assignable to type '"test2"'. +const valueB: "test2" = entryImport(); + ~~~~~~ + at [WILDCARD]/main.ts:[WILDCARD] + +TS2322 [ERROR]: Type '12' is not assignable to type '"test3"'. +const valueC: "test3" = entryA(); + ~~~~~~ + at [WILDCARD]/main.ts:[WILDCARD] + +TS2322 [ERROR]: Type '"types"' is not assignable to type '"test4"'. +const valueD: "test4" = entryTypes(); + ~~~~~~ + at file:///[WILDCARD]/main.ts:[WILDCARD] + +Found 9 errors. diff --git a/tests/specs/npm/types_general/main.ts b/tests/specs/npm/types_general/main.ts new file mode 100644 index 000000000..ae420f6d6 --- /dev/null +++ b/tests/specs/npm/types_general/main.ts @@ -0,0 +1,27 @@ +import type { Fizzbuzz } from "npm:@denotest/types"; +import type { SomeInterface } from "npm:@denotest/types_imported"; +import type { Foobar as FooInterface } from "npm:@denotest/types_imported/subpath"; +import { getClient } from "npm:@denotest/types-exports-subpaths/client"; +import { entryImport } from "npm:@denotest/types-exports-subpaths/entry-import"; +import { entryA } from "npm:@denotest/types-exports-subpaths/entry-a"; +import { entryTypes } from "npm:@denotest/types-exports-subpaths/entry-types-last-no-declaration-before"; + +const foobar: FooInterface = { + foo: "foo", + bar: 1, +}; + +const i: SomeInterface = { + prop: 1, + prop2: "asdf", +}; + +const fizzbuzz: Fizzbuzz = { + fizz: 1, + buzz: 2, +}; + +const valueA: "test1" = getClient(); +const valueB: "test2" = entryImport(); +const valueC: "test3" = entryA(); +const valueD: "test4" = entryTypes(); |
