Socket
Socket
Sign inDemoInstall

expect-type

Package Overview
Dependencies
Maintainers
1
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

expect-type - npm Package Compare versions

Comparing version 0.4.6 to 0.5.0

13

CHANGELOG.md

@@ -6,2 +6,15 @@ # Change Log

# [0.5.0](https://github.com/mmkal/ts/compare/expect-type@0.4.6...expect-type@0.5.0) (2020-04-05)
### Features
* **toHaveProperty:** rename from `property` ([71db1ab](https://github.com/mmkal/ts/commit/71db1ab62ea19a96bf7c9261c06c8a6a5c08d034))
* returns not return ([4c5a5b7](https://github.com/mmkal/ts/commit/4c5a5b708f86d7073008f1f16e8c56e4583df2ed))
## [0.4.6](https://github.com/mmkal/ts/compare/expect-type@0.4.5...expect-type@0.4.6) (2020-03-30)

@@ -8,0 +21,0 @@

11

dist/__tests__/index.test.js

@@ -48,6 +48,11 @@ "use strict";

const obj = { a: 1, b: '' };
__1.expectTypeOf(obj).property('a').toEqualTypeOf(1);
__1.expectTypeOf(obj).property('b').toEqualTypeOf();
// check that properties exist (or don't) with `.toHaveProperty`
__1.expectTypeOf(obj).toHaveProperty('a');
__1.expectTypeOf(obj).not.toHaveProperty('c');
// check types of properties
__1.expectTypeOf(obj).toHaveProperty('a').toBeNumber();
__1.expectTypeOf(obj).toHaveProperty('b').toBeString();
__1.expectTypeOf(obj).toHaveProperty('a').not.toBeString();
});
test('Assert on function parameters (using `.parameter(n)` or `.parameters`) and return values (using `.return`)', () => {
test('Assert on function parameters (using `.parameter(n)` or `.parameters`) and return values (using `.returns`)', () => {
const f = (a) => [a, a];

@@ -54,0 +59,0 @@ __1.expectTypeOf(f).toBeFunction();

@@ -34,3 +34,3 @@ export declare type Not<T extends boolean> = T extends true ? false : true;

toBeCallableWith: B extends true ? (...args: Params<Actual>) => true : never;
property<K extends keyof Actual>(key: K): ExpectTypeOf<Actual[K], B>;
toHaveProperty: <K extends string>(key: K, ...MISMATCH: MismatchArgs<Extends<K, keyof Actual>, B>) => K extends keyof Actual ? ExpectTypeOf<Actual[K], B> : true;
parameter<K extends keyof Params<Actual>>(number: K): ExpectTypeOf<Params<Actual>[K], B>;

@@ -37,0 +37,0 @@ parameters: ExpectTypeOf<Params<Actual>, B>;

@@ -36,3 +36,3 @@ "use strict";

toBeCallableWith: fn,
property: exports.expectTypeOf,
toHaveProperty: exports.expectTypeOf,
parameter: exports.expectTypeOf,

@@ -39,0 +39,0 @@ };

{
"name": "expect-type",
"version": "0.4.6",
"version": "0.5.0",
"repository": "https://github.com/mmkal/ts",

@@ -23,3 +23,3 @@ "homepage": "https://github.com/mmkal/ts/tree/master/packages/expect-type#readme",

],
"gitHead": "9a94949431744ea0ef0e7b7014c555fc9577755b"
"gitHead": "4a8c78155cf27ef03dcbbac3fc5afe3f9e898053"
}

@@ -9,3 +9,3 @@ # expect-type

<!-- codegen:start {preset: markdownFromJsdoc, source: src/index.ts, export: expectTypeOf} -->
#### [expectTypeOf](https://github.com/mmkal/ts/tree/9a94949/packages/expect-type/src/index.ts#L67)
#### [expectTypeOf](https://github.com/mmkal/ts/tree/4a8c781/packages/expect-type/src/index.ts#L71)

@@ -113,7 +113,13 @@ Similar to Jest's `expect`, but with type-awareness. Gives you access to a number of type-matchers that let you make assertions about the form of a reference or generic type parameter.

expectTypeOf(obj).property('a').toEqualTypeOf(1)
expectTypeOf(obj).property('b').toEqualTypeOf<string>()
// check that properties exist (or don't) with `.toHaveProperty`
expectTypeOf(obj).toHaveProperty('a')
expectTypeOf(obj).not.toHaveProperty('c')
// check types of properties
expectTypeOf(obj).toHaveProperty('a').toBeNumber()
expectTypeOf(obj).toHaveProperty('b').toBeString()
expectTypeOf(obj).toHaveProperty('a').not.toBeString()
```
Assert on function parameters (using `.parameter(n)` or `.parameters`) and return values (using `.return`):
Assert on function parameters (using `.parameter(n)` or `.parameters`) and return values (using `.returns`):

@@ -120,0 +126,0 @@ ```typescript

@@ -56,7 +56,13 @@ import {expectTypeOf} from '..'

expectTypeOf(obj).property('a').toEqualTypeOf(1)
expectTypeOf(obj).property('b').toEqualTypeOf<string>()
// check that properties exist (or don't) with `.toHaveProperty`
expectTypeOf(obj).toHaveProperty('a')
expectTypeOf(obj).not.toHaveProperty('c')
// check types of properties
expectTypeOf(obj).toHaveProperty('a').toBeNumber()
expectTypeOf(obj).toHaveProperty('b').toBeString()
expectTypeOf(obj).toHaveProperty('a').not.toBeString()
})
test('Assert on function parameters (using `.parameter(n)` or `.parameters`) and return values (using `.return`)', () => {
test('Assert on function parameters (using `.parameter(n)` or `.parameters`) and return values (using `.returns`)', () => {
const f = (a: number) => [a, a]

@@ -63,0 +69,0 @@

@@ -28,2 +28,3 @@ export type Not<T extends boolean> = T extends true ? false : true

type MismatchArgs<B extends boolean, C extends boolean> = Eq<B, C> extends true ? [] : [never]
export interface ExpectTypeOf<Actual, B extends boolean> {

@@ -46,3 +47,6 @@ toBeAny: (...MISMATCH: MismatchArgs<IsAny<Actual>, B>) => true

toBeCallableWith: B extends true ? (...args: Params<Actual>) => true : never
property<K extends keyof Actual>(key: K): ExpectTypeOf<Actual[K], B>
toHaveProperty: <K extends string>(
key: K,
...MISMATCH: MismatchArgs<Extends<K, keyof Actual>, B>
) => K extends keyof Actual ? ExpectTypeOf<Actual[K], B> : true
parameter<K extends keyof Params<Actual>>(number: K): ExpectTypeOf<Params<Actual>[K], B>

@@ -91,3 +95,3 @@ parameters: ExpectTypeOf<Params<Actual>, B>

toBeCallableWith: fn,
property: expectTypeOf,
toHaveProperty: expectTypeOf,
parameter: expectTypeOf,

@@ -94,0 +98,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc