Skip to content

Commit 82e2f4c

Browse files
Catch missing imports - fixes #24
1 parent 1e373a6 commit 82e2f4c

File tree

6 files changed

+29
-1
lines changed

6 files changed

+29
-1
lines changed

source/lib/config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ export default (pkg: {tsd?: RawConfig}, cwd: string): Config => {
3939
target: ScriptTarget.ES2017,
4040
...tsConfigCompilerOptions,
4141
...packageJsonCompilerOptions,
42-
moduleResolution: ModuleResolutionKind.NodeJs
42+
moduleResolution: ModuleResolutionKind.NodeJs,
43+
skipLibCheck: false
4344
}
4445
};
4546
};
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export type LiteralUnion<
2+
LiteralType extends BaseType,
3+
BaseType extends Primitive
4+
> = LiteralType | (BaseType & {_?: never});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// Nothing here
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import {expectType} from '../../..';
2+
import {LiteralUnion} from '.';
3+
4+
type Pet = LiteralUnion<'dog' | 'cat', string>;
5+
6+
expectType<Pet>('dog');
7+
expectType<Pet>('cat');
8+
expectType<Pet>('unicorn');
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"name": "foo"
3+
}

source/test/test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,3 +233,14 @@ test('expectError for values', async t => {
233233
t.true(diagnostics[0].message === 'Expected an error, but found none.');
234234
t.true(diagnostics[0].severity === 'error');
235235
});
236+
237+
test('missing import', async t => {
238+
const diagnostics = await m({cwd: path.join(__dirname, 'fixtures/missing-import')});
239+
240+
t.true(diagnostics.length === 1);
241+
242+
t.true(diagnostics[0].column === 18);
243+
t.true(diagnostics[0].line === 3);
244+
t.true(diagnostics[0].message === 'Cannot find name \'Primitive\'.');
245+
t.true(diagnostics[0].severity === 'error');
246+
});

0 commit comments

Comments
 (0)