[ember] refactor @ember/test types into their own module (#28804)

fixes https://github.com/typed-ember/ember-cli-typescript/issues/278
This commit is contained in:
Mike North
2018-09-14 10:24:21 -07:00
committed by Ryan Cavanaugh
parent 1da1401566
commit 2c67d74e1e
5 changed files with 87 additions and 0 deletions

2
types/ember__test/adapter.d.ts vendored Normal file
View File

@@ -0,0 +1,2 @@
import Ember from 'ember';
export default class TestAdapter extends Ember.Test.Adapter { }

View File

@@ -0,0 +1,39 @@
import { registerWaiter, registerHelper, registerAsyncHelper } from '@ember/test';
import TestAdapter from '@ember/test/adapter';
const pending = 0;
registerWaiter(() => pending !== 0);
declare const MyDb: {
hasPendingTransactions(): boolean;
};
registerWaiter(MyDb, MyDb.hasPendingTransactions);
registerWaiter(); // $ExpectError
registerHelper('boot', app => {
app.advanceReadiness(); // $ExpectType void
app.deferReadiness(); // $ExpectType void
app.register('foo', class {}); // $ExpectType void
app.register('foo'); // $ExpectError
app.register(); // $ExpectError
});
registerAsyncHelper('boot', app => {
app.advanceReadiness();
app.deferReadiness();
app.register('foo', class {});
});
registerAsyncHelper('waitForPromise', (app, promise) => {
app.advanceReadiness();
app.deferReadiness();
app.register('foo', class {});
return new Promise(() => {
const adapter = new TestAdapter();
adapter.asyncStart();
return promise.then(() => {
adapter.asyncEnd();
});
});
});

12
types/ember__test/index.d.ts vendored Normal file
View File

@@ -0,0 +1,12 @@
// Type definitions for @ember/test 3.0
// Project: http://emberjs.com/
// Definitions by: Mike North <https://github.com/mike-north>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
import Ember from 'ember';
export const registerAsyncHelper: typeof Ember.Test.registerAsyncHelper;
export const registerHelper: typeof Ember.Test.registerHelper;
export const registerWaiter: typeof Ember.Test.registerWaiter;
export const unregisterHelper: typeof Ember.Test.unregisterHelper;
export const unregisterWaiter: typeof Ember.Test.unregisterWaiter;

View File

@@ -0,0 +1,30 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"lib": [
"es6",
"dom"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"paths": {
"@ember/test": ["ember__test"],
"@ember/test/*": ["ember__test/*"]
},
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"adapter.d.ts",
"ember__test-tests.ts"
]
}

View File

@@ -0,0 +1,4 @@
{
"extends": "dtslint/dt.json",
"rules": { }
}