Skip to content

Commit 1051136

Browse files
committed
JS: Add test
1 parent 4bfb048 commit 1051136

26 files changed

+342
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import * as express from 'express';
2+
3+
function getRequest(): express.Request { }
4+
5+
function t1() {
6+
getRequest(); // $ hasUnderlyingType='express'.Request
7+
}
8+
9+
declare function getRequestAmbient(): express.Request;
10+
11+
function t2() {
12+
getRequestAmbient(); // $ hasUnderlyingType='express'.Request
13+
}
14+
15+
class C {
16+
method(): express.Request { }
17+
}
18+
19+
function t3(c: C) {
20+
c.method(); // $ hasUnderlyingType='express'.Request
21+
new C().method(); // $ hasUnderlyingType='express'.Request
22+
}
23+
24+
function callback(fn: (req: express.Request) => void) { // $ SPURIOUS: hasUnderlyingType='express'.Request // req seems to be a SourceNode
25+
}
26+
27+
function t4() {
28+
callback(function (
29+
req // $ hasUnderlyingType='express'.Request
30+
) { }
31+
);
32+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
goog.declareModuleId("closure.es")
2+
3+
const Bar = goog.require('closure.reexported.Bar');
4+
5+
export { Bar }
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
goog.module("closure.lib")
2+
3+
exports.Foo = goog.require('closure.reexported.Foo');
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
goog.module("closure.use")
2+
3+
const lib = goog.require("closure.lib");
4+
const es = goog.require("closure.es");
5+
6+
/**
7+
* @param {lib.Foo} x
8+
*/
9+
function t1(x) { // $ hasUnderlyingType=closure.reexported.Foo hasUnderlyingType=closure.lib.Foo
10+
}
11+
12+
/**
13+
* @param {es.Bar} x
14+
*/
15+
function t2(x) { // $ hasUnderlyingType=closure.reexported.Bar hasUnderlyingType=closure.es.Bar
16+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import * as express from 'express';
2+
3+
interface Options {
4+
handle(req: express.Request): void; // $ hasUnderlyingType='express'.Request
5+
}
6+
7+
declare function doSomething(options: Options);
8+
9+
function t1() {
10+
doSomething({
11+
handle(req) { // $ hasUnderlyingType='express'.Request
12+
}
13+
});
14+
}
15+
16+
function t2(callback: ((opts: Options) => void) | undefined) {
17+
callback({
18+
handle(req) { } // $ hasUnderlyingType='express'.Request
19+
})
20+
callback!({
21+
handle(req) { } // $ hasUnderlyingType='express'.Request
22+
})
23+
}
24+
25+
function t3(): Options {
26+
return {
27+
handle(req) { } // $ hasUnderlyingType='express'.Request
28+
}
29+
}
30+
31+
function t4(): Options[] {
32+
return [
33+
{
34+
handle(req) { } // $ hasUnderlyingType='express'.Request
35+
}
36+
]
37+
}
38+
39+
async function t5(): Promise<Options> {
40+
return {
41+
handle(req) { // $ hasUnderlyingType='express'.Request
42+
43+
}
44+
}
45+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from 'express';
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { Request, Response } from './expressBulkExport';
2+
3+
function t1(req: Request) { // $ hasUnderlyingType='express'.Request
4+
}
5+
6+
function t2(res: Response) { // $ hasUnderlyingType='express'.Response
7+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import E = require('express');
2+
export = E;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { Request } from "./expressExportAssign";
2+
3+
function t1(req: Request) { // $ hasUnderlyingType='express'.Request
4+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import Express = require('express');
2+
namespace Wrapper {
3+
export import E = Express;
4+
}
5+
export = Wrapper;

0 commit comments

Comments
 (0)