From ccf9122902542e4a733871ae7f6d6e0abb1d2d13 Mon Sep 17 00:00:00 2001 From: Mike North Date: Tue, 28 Aug 2018 23:18:12 -0400 Subject: [PATCH] [ember] failing tests for create --- types/ember/test/create-negative.ts | 12 +++++++++ types/ember/test/create.ts | 34 +++++++++++++++++++++++++- types/ember/test/reopen.ts | 4 +++ types/ember/tsconfig.json | 2 ++ types/ember/v2/test/create-negative.ts | 9 +++++++ types/ember/v2/test/create.ts | 34 +++++++++++++++++++++++++- types/ember/v2/tsconfig.json | 1 + 7 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 types/ember/test/create-negative.ts create mode 100644 types/ember/v2/test/create-negative.ts diff --git a/types/ember/test/create-negative.ts b/types/ember/test/create-negative.ts new file mode 100644 index 0000000000..f7fa0b2104 --- /dev/null +++ b/types/ember/test/create-negative.ts @@ -0,0 +1,12 @@ +import { assertType } from './lib/assert'; +import Ember from 'ember'; +import { PersonWithNumberName, Person } from './create'; + +Person.create({ firstName: 99 }); // $ExpectError +Person.create({}, { firstName: 99 }); // $ExpectError +Person.create({}, {}, { firstName: 99 }); // $ExpectError + +const p4 = new PersonWithNumberName(); +// assertType(p4.get('fullName')); + +assertType>(p4.fullName); // $ExpectError diff --git a/types/ember/test/create.ts b/types/ember/test/create.ts index 6dc61b80f6..5bd8d2a396 100755 --- a/types/ember/test/create.ts +++ b/types/ember/test/create.ts @@ -1,7 +1,39 @@ import Ember from 'ember'; import { assertType } from './lib/assert'; +const o = Ember.Object.create(); +assertType(o); + +const o1 = Ember.Object.create({x: 9}); +assertType(o1.x); + const obj = Ember.Object.create({ a: 1 }, { b: 2 }, { c: 3 }); -assertType(obj.a); assertType(obj.b); +assertType(obj.a); assertType(obj.c); + +export class Person extends Ember.Object.extend({ + fullName: Ember.computed('firstName', 'lastName', function() { + return [this.firstName + this.lastName].join(' '); + }) +}) { + firstName: string; + lastName: string; + age: number; +} +const p = new Person(); +assertType(p.firstName); +assertType>(p.fullName); +assertType(p.get('fullName')); + +const p2 = Person.create({ firstName: 'string' }); +const p2b = Person.create({}, { firstName: 'string' }); +const p2c = Person.create({}, {}, { firstName: 'string' }); + +export class PersonWithNumberName extends Person.extend({ + fullName: 6 +}) {} + +const p4 = new PersonWithNumberName(); +assertType(p4.firstName); +assertType(p4.fullName); diff --git a/types/ember/test/reopen.ts b/types/ember/test/reopen.ts index 6c13ca4155..30690f6f40 100755 --- a/types/ember/test/reopen.ts +++ b/types/ember/test/reopen.ts @@ -29,6 +29,10 @@ assertType(Person2.species); let tom = Person2.create({ name: 'Tom Dale' }); +let badTom = Person2.create({ + name: 99 // $ExpectError +}); + let yehuda = Person2.createPerson('Yehuda Katz'); tom.sayHello(); // "Hello. My name is Tom Dale" diff --git a/types/ember/tsconfig.json b/types/ember/tsconfig.json index 676c107f72..2d8e635104 100755 --- a/types/ember/tsconfig.json +++ b/types/ember/tsconfig.json @@ -29,6 +29,8 @@ "test/event.ts", "test/extend.ts", "test/create.ts", + "test/create-negative.ts", + "test/create.ts", "test/object.ts", "test/observable.ts", "test/mixin.ts", diff --git a/types/ember/v2/test/create-negative.ts b/types/ember/v2/test/create-negative.ts new file mode 100644 index 0000000000..f0e32a2d5e --- /dev/null +++ b/types/ember/v2/test/create-negative.ts @@ -0,0 +1,9 @@ +import { assertType } from './lib/assert'; +import Ember from 'ember'; +import { PersonWithNumberName, Person } from './create'; + +const p3 = Person.create({ firstName: 99 }); // $ExpectError +const p2b = Person.create({}, { firstName: 99 }); // $ExpectError +const p2c = Person.create({}, {}, { firstName: 99 }); // $ExpectError + +const p4 = new PersonWithNumberName(); diff --git a/types/ember/v2/test/create.ts b/types/ember/v2/test/create.ts index 6dc61b80f6..5bd8d2a396 100755 --- a/types/ember/v2/test/create.ts +++ b/types/ember/v2/test/create.ts @@ -1,7 +1,39 @@ import Ember from 'ember'; import { assertType } from './lib/assert'; +const o = Ember.Object.create(); +assertType(o); + +const o1 = Ember.Object.create({x: 9}); +assertType(o1.x); + const obj = Ember.Object.create({ a: 1 }, { b: 2 }, { c: 3 }); -assertType(obj.a); assertType(obj.b); +assertType(obj.a); assertType(obj.c); + +export class Person extends Ember.Object.extend({ + fullName: Ember.computed('firstName', 'lastName', function() { + return [this.firstName + this.lastName].join(' '); + }) +}) { + firstName: string; + lastName: string; + age: number; +} +const p = new Person(); +assertType(p.firstName); +assertType>(p.fullName); +assertType(p.get('fullName')); + +const p2 = Person.create({ firstName: 'string' }); +const p2b = Person.create({}, { firstName: 'string' }); +const p2c = Person.create({}, {}, { firstName: 'string' }); + +export class PersonWithNumberName extends Person.extend({ + fullName: 6 +}) {} + +const p4 = new PersonWithNumberName(); +assertType(p4.firstName); +assertType(p4.fullName); diff --git a/types/ember/v2/tsconfig.json b/types/ember/v2/tsconfig.json index 28f9bddb67..3269fa01f1 100755 --- a/types/ember/v2/tsconfig.json +++ b/types/ember/v2/tsconfig.json @@ -32,6 +32,7 @@ "test/event.ts", "test/extend.ts", "test/create.ts", + "test/create-negative.ts", "test/object.ts", "test/observable.ts", "test/mixin.ts",