diff --git a/package.json b/package.json index 1c20abb..8a4ca67 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "lint:fix": "eslint --fix", "test": "npm run test:unit && npm run test:typescript", "test:unit": "c8 --100 node --test", - "test:typescript": "tsd" + "test:typescript": "tstyche" }, "repository": { "type": "git", @@ -71,6 +71,6 @@ "eslint": "^9.17.0", "fluent-json-schema": "^6.0.0", "neostandard": "^0.13.0", - "tsd": "^0.33.0" + "tstyche": "^7.0.0" } -} +} \ No newline at end of file diff --git a/types/index.test-d.ts b/types/index.tst.ts similarity index 53% rename from types/index.test-d.ts rename to types/index.tst.ts index dace7a6..2cc1ff7 100644 --- a/types/index.test-d.ts +++ b/types/index.tst.ts @@ -1,11 +1,11 @@ -import { expectError, expectType } from 'tsd' +import { expect } from 'tstyche' import envSchema, { EnvSchemaData, EnvSchemaOpt, keywords, envSchema as envSchemaNamed, default as envSchemaDefault, -} from '..' +} from '.' import Ajv, { KeywordDefinition, JSONSchemaType } from 'ajv' import { Static, Type } from 'typebox' @@ -34,62 +34,62 @@ const data = { foo: 'bar', } -expectType(envSchema()) -expectType(envSchemaNamed()) -expectType(envSchemaDefault()) +expect(envSchema()).type.toBe() +expect(envSchemaNamed()).type.toBe() +expect(envSchemaDefault()).type.toBe() const emptyOpt: EnvSchemaOpt = {} -expectType(emptyOpt) +expect(emptyOpt).type.toBe() const optWithSchemaTypebox: EnvSchemaOpt = { schema: schemaTypebox, } -expectType(optWithSchemaTypebox) +expect(optWithSchemaTypebox).type.toBe() const optWithSchemaWithType: EnvSchemaOpt = { schema: schemaWithType, } -expectType>(optWithSchemaWithType) +expect(optWithSchemaWithType).type.toBe>() const optWithData: EnvSchemaOpt = { data, } -expectType(optWithData) +expect(optWithData).type.toBe() -expectError({ - data: [], // min 1 item +expect().type.not.toBeAssignableFrom({ + data: [], }) const optWithArrayData: EnvSchemaOpt = { data: [{}], } -expectType(optWithArrayData) +expect(optWithArrayData).type.toBe() const optWithMultipleItemArrayData: EnvSchemaOpt = { data: [{}, {}], } -expectType(optWithMultipleItemArrayData) +expect(optWithMultipleItemArrayData).type.toBe() const optWithDotEnvBoolean: EnvSchemaOpt = { dotenv: true, } -expectType(optWithDotEnvBoolean) +expect(optWithDotEnvBoolean).type.toBe() const optWithDotEnvOpt: EnvSchemaOpt = { dotenv: {}, } -expectType(optWithDotEnvOpt) +expect(optWithDotEnvOpt).type.toBe() const optWithEnvExpand: EnvSchemaOpt = { expandEnv: true, } -expectType(optWithEnvExpand) +expect(optWithEnvExpand).type.toBe() const optWithAjvInstance: EnvSchemaOpt = { ajv: new Ajv(), } -expectType(optWithAjvInstance) -expectType(envSchema.keywords.separator) +expect(optWithAjvInstance).type.toBe() +expect(envSchema.keywords.separator).type.toBe() const optWithAjvCustomOptions: EnvSchemaOpt = { ajv: { @@ -98,18 +98,20 @@ const optWithAjvCustomOptions: EnvSchemaOpt = { }, }, } -expectType(optWithAjvCustomOptions) -expectError({ - ajv: { - customOptions (_ajvInstance: Ajv) {}, - }, -}) +expect(optWithAjvCustomOptions).type.toBe() + +expect() + .type.not.toBeAssignableFrom({ + ajv: { + customOptions (_ajvInstance: Ajv) {} + } + }) const envSchemaWithType = envSchema({ schema: schemaWithType }) -expectType(envSchemaWithType) +expect(envSchemaWithType).type.toBe() const envSchemaTypebox = envSchema({ schema: schemaTypebox }) -expectType(envSchemaTypebox) +expect(envSchemaTypebox).type.toBe() -expectType(keywords.separator) -expectType(envSchema.keywords.separator) +expect(keywords.separator).type.toBe() +expect(envSchema.keywords.separator).type.toBe()