|
42 | 42 | if (createOptions.useReadCallback) { |
43 | 43 | mapped.DO = createComputed({ |
44 | 44 | read: doData, |
45 | | - deferEvaluation: !!createOptions.deferEvaluation |
| 45 | + deferEvaluation: !!createOptions.deferEvaluation, |
| 46 | + pure: !!createOptions.pure |
46 | 47 | }, mapped); |
47 | 48 | } |
48 | 49 | else if (createOptions.useWriteCallback) { |
|
57 | 58 | } |
58 | 59 | else { |
59 | 60 | mapped.DO = createComputed(doData, mapped, { |
60 | | - deferEvaluation: !!createOptions.deferEvaluation |
| 61 | + deferEvaluation: !!createOptions.deferEvaluation, |
| 62 | + pure: !!createOptions.pure |
61 | 63 | }); |
62 | 64 | } |
63 | 65 |
|
|
271 | 273 | }, 0); |
272 | 274 | }); |
273 | 275 |
|
| 276 | + QUnit.test('pure dependentObservables should NOT be auto-evaluated after mapping', function(assert) { |
| 277 | + var done = assert.async(); |
| 278 | + assert.expect(1); |
| 279 | + |
| 280 | + var mapped = testInfo.create({pure: true}); |
| 281 | + window.setTimeout(function() { |
| 282 | + assert.equal(testInfo.evaluationCount, 0); |
| 283 | + done(); |
| 284 | + }, 0); |
| 285 | + }); |
| 286 | + |
274 | 287 | QUnit.test('un-deferred dependentObservables with read callback that are NOT used immediately SHOULD be auto-evaluated after mapping', function(assert) { |
275 | 288 | var done = assert.async(); |
276 | 289 | assert.expect(1); |
|
305 | 318 | }, 0); |
306 | 319 | }); |
307 | 320 |
|
| 321 | + QUnit.test('pure dependentObservables with read callback should NOT be auto-evaluated after mapping', function(assert) { |
| 322 | + var done = assert.async(); |
| 323 | + assert.expect(1); |
| 324 | + |
| 325 | + var mapped = testInfo.create({pure: true, useReadCallback: true}); |
| 326 | + window.setTimeout(function() { |
| 327 | + assert.equal(testInfo.evaluationCount, 0); |
| 328 | + done(); |
| 329 | + }, 0); |
| 330 | + }); |
| 331 | + |
308 | 332 | QUnit.test('can subscribe to proxy dependentObservable', function(assert) { |
309 | 333 | assert.expect(0); |
310 | 334 | var mapped = testInfo.create({deferEvaluation: true, useReadCallback: true}); |
|
0 commit comments