Skip to content

Commit

Permalink
Read fields during creation, to make tests more realistic / comparable
Browse files Browse the repository at this point in the history
  • Loading branch information
mweststrate committed Sep 10, 2020
1 parent 6061305 commit 74c0748
Show file tree
Hide file tree
Showing 4 changed files with 120 additions and 31 deletions.
33 changes: 26 additions & 7 deletions test/v4/base/babel-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ test("288 atom not detected for object property", () => {
expect(changed).toBe(true)
})
test.skip("observable performance", () => {
test("observable performance", () => {
const AMOUNT = 100000
class A {
Expand All @@ -456,8 +456,15 @@ test.skip("observable performance", () => {
const objs = []
const start = Date.now()
for (let i = 0; i < AMOUNT; i++) objs.push(new A())
for (let i = 0; i < AMOUNT; i++) {
const a = new A()
objs.push(a)
// force initialization
a.a
a.b
a.c
a.d
}
console.log("created in ", Date.now() - start)
for (let j = 0; j < 4; j++) {
Expand Down Expand Up @@ -936,7 +943,10 @@ test("@computed.equals (Babel)", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -975,7 +985,10 @@ test("computed comparer works with decorate (babel)", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1016,7 +1029,10 @@ test("computed comparer works with decorate (babel) - 2", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1051,7 +1067,10 @@ test("computed comparer works with decorate (babel) - 3", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down
43 changes: 34 additions & 9 deletions test/v4/base/typescript-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,7 @@ test("288 atom not detected for object property", () => {
)
})

test.skip("observable performance", () => {
test("observable performance", () => {
const AMOUNT = 100000

class A {
Expand All @@ -669,8 +669,15 @@ test.skip("observable performance", () => {
const objs: any[] = []
const start = Date.now()

for (let i = 0; i < AMOUNT; i++) objs.push(new A())

for (let i = 0; i < AMOUNT; i++) {
const a = new A()
objs.push(a)
// force initialization
a.a
a.b
a.c
a.d
}
console.log("created in ", Date.now() - start)

for (let j = 0; j < 4; j++) {
Expand Down Expand Up @@ -1190,7 +1197,10 @@ test("@computed.equals (TS)", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1226,7 +1236,10 @@ test("computed comparer works with decorate (TS)", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1262,7 +1275,10 @@ test("computed comparer works with decorate (TS)", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1307,7 +1323,10 @@ test("computed comparer works with decorate (TS) - 2", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1342,7 +1361,10 @@ test("computed comparer works with decorate (TS) - 3", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1449,7 +1471,10 @@ test("unread computed reads should trow with requiresReaction enabled", () => {
a.y
}).toThrow(/is read outside a reactive context/)

const d = mobx.reaction(() => a.y, () => {})
const d = mobx.reaction(
() => a.y,
() => {}
)
expect(() => {
a.y
}).not.toThrow()
Expand Down
32 changes: 26 additions & 6 deletions test/v5/base/babel-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ test("288 atom not detected for object property", () => {
expect(changed).toBe(true)
})
test.skip("observable performance", () => {
test("observable performance", () => {
const AMOUNT = 100000
class A {
Expand All @@ -456,7 +456,15 @@ test.skip("observable performance", () => {
const objs = []
const start = Date.now()
for (let i = 0; i < AMOUNT; i++) objs.push(new A())
for (let i = 0; i < AMOUNT; i++) {
const a = new A()
objs.push(a)
// force initialization
a.a
a.b
a.c
a.d
}
console.log("created in ", Date.now() - start)
Expand Down Expand Up @@ -936,7 +944,10 @@ test("@computed.equals (Babel)", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -975,7 +986,10 @@ test("computed comparer works with decorate (babel)", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1016,7 +1030,10 @@ test("computed comparer works with decorate (babel) - 2", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1051,7 +1068,10 @@ test("computed comparer works with decorate (babel) - 3", () => {
time.minute = 0
expect(changes).toEqual([{ hour: 9, minute: 0 }])
time.hour = 10
expect(changes).toEqual([{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
expect(changes).toEqual([
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
expect(changes).toEqual([
{ hour: 9, minute: 0 },
Expand Down
43 changes: 34 additions & 9 deletions test/v5/base/typescript-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,7 @@ test("288 atom not detected for object property", () => {
)
})

test.skip("observable performance", () => {
test("observable performance", () => {
const AMOUNT = 100000

class A {
Expand All @@ -669,8 +669,15 @@ test.skip("observable performance", () => {
const objs: any[] = []
const start = Date.now()

for (let i = 0; i < AMOUNT; i++) objs.push(new A())

for (let i = 0; i < AMOUNT; i++) {
const a = new A()
objs.push(a)
// force initialization
a.a
a.b
a.c
a.d
}
console.log("created in ", Date.now() - start)

for (let j = 0; j < 4; j++) {
Expand Down Expand Up @@ -1190,7 +1197,10 @@ test("@computed.equals (TS)", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1226,7 +1236,10 @@ test("computed comparer works with decorate (TS)", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1262,7 +1275,10 @@ test("computed comparer works with decorate (TS)", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1307,7 +1323,10 @@ test("computed comparer works with decorate (TS) - 2", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1342,7 +1361,10 @@ test("computed comparer works with decorate (TS) - 3", () => {
time.minute = 0
t.deepEqual(changes, [{ hour: 9, minute: 0 }])
time.hour = 10
t.deepEqual(changes, [{ hour: 9, minute: 0 }, { hour: 10, minute: 0 }])
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
{ hour: 10, minute: 0 }
])
time.minute = 30
t.deepEqual(changes, [
{ hour: 9, minute: 0 },
Expand Down Expand Up @@ -1449,7 +1471,10 @@ test("unread computed reads should trow with requiresReaction enabled", () => {
a.y
}).toThrow(/is read outside a reactive context/)

const d = mobx.reaction(() => a.y, () => {})
const d = mobx.reaction(
() => a.y,
() => {}
)
expect(() => {
a.y
}).not.toThrow()
Expand Down

0 comments on commit 74c0748

Please sign in to comment.