@angular-wave/angular.ts 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/angular-ts.esm.js +2 -2
  2. package/dist/angular-ts.umd.js +2 -12
  3. package/index.html +3 -74
  4. package/package.json +1 -1
  5. package/src/angular.spec.js +5 -0
  6. package/src/animations/animate-css.js +13 -5
  7. package/src/animations/animate-queue.js +21 -22
  8. package/src/animations/animate-runner.js +8 -4
  9. package/src/animations/animate.md +1 -1
  10. package/src/animations/animate.spec.js +21 -0
  11. package/src/animations/animation.js +1 -1
  12. package/src/binding.spec.js +1 -0
  13. package/src/core/compile/compile.js +26 -25
  14. package/src/core/compile/compile.spec.js +266 -17
  15. package/src/core/controller/controller.js +0 -2
  16. package/src/core/di/injector.md +1 -1
  17. package/src/core/di/injector.spec.js +2 -0
  18. package/src/core/di/internal-injector.js +1 -2
  19. package/src/core/interpolate/interpolate.js +3 -16
  20. package/src/core/interpolate/interpolate.spec.js +16 -70
  21. package/src/core/interval/interval-factory.js +50 -0
  22. package/src/core/interval/interval.html +18 -0
  23. package/src/core/interval/interval.js +77 -0
  24. package/src/core/interval/interval.md +123 -0
  25. package/src/core/interval/interval.spec.js +280 -0
  26. package/src/core/interval/interval.test.js +1 -1
  27. package/src/core/location/location.js +47 -39
  28. package/src/core/location/location.spec.js +27 -27
  29. package/src/core/on.spec.js +7 -0
  30. package/src/core/parse/interpreter.js +7 -10
  31. package/src/core/parse/parse.js +5 -26
  32. package/src/core/parse/parse.spec.js +91 -95
  33. package/src/core/prop.spec.js +60 -4
  34. package/src/core/q/q.html +18 -0
  35. package/src/core/q/q.js +472 -0
  36. package/src/core/q/q.md +211 -0
  37. package/src/core/q/q.spec.js +2748 -0
  38. package/src/core/q/q.test.js +12 -0
  39. package/src/core/sce/sce.spec.js +8 -0
  40. package/src/core/{model/model.html → scope/scope.html} +1 -1
  41. package/src/core/scope/scope.js +16 -15
  42. package/src/core/scope/scope.spec.js +1959 -24
  43. package/src/core/scope/scope.test.js +12 -0
  44. package/src/core/timeout/timeout.html +18 -0
  45. package/src/core/timeout/timeout.js +109 -0
  46. package/src/core/timeout/timeout.spec.js +354 -0
  47. package/src/core/timeout/timout.test.js +12 -0
  48. package/src/core/url-utils/url-utils.spec.js +1 -1
  49. package/src/directive/aria/aria.js +6 -3
  50. package/src/directive/aria/aria.spec.js +87 -0
  51. package/src/directive/attrs/attrs.spec.js +5 -0
  52. package/src/directive/attrs/boolean.spec.js +15 -0
  53. package/src/directive/attrs/element-style.spec.js +8 -0
  54. package/src/directive/attrs/src.spec.js +7 -0
  55. package/src/directive/bind/bind.spec.js +33 -0
  56. package/src/directive/bind/bing-html.spec.js +3 -0
  57. package/src/directive/class/class.js +3 -3
  58. package/src/directive/class/class.spec.js +75 -9
  59. package/src/directive/controller/controller.spec.js +13 -0
  60. package/src/directive/events/click.spec.js +3 -0
  61. package/src/directive/events/event.spec.js +6 -0
  62. package/src/directive/form/form.js +3 -2
  63. package/src/directive/form/form.spec.js +65 -0
  64. package/src/directive/if/if.spec.js +4 -0
  65. package/src/directive/include/include.spec.js +59 -8
  66. package/src/directive/init/init.js +2 -6
  67. package/src/directive/init/init.spec.js +2 -0
  68. package/src/directive/input/input.spec.js +136 -0
  69. package/src/directive/messages/messages.spec.js +35 -4
  70. package/src/directive/model/model.js +25 -18
  71. package/src/directive/model/model.spec.js +49 -2
  72. package/src/directive/model-options/model-options.spec.js +6 -0
  73. package/src/directive/non-bindable/non-bindable.spec.js +1 -0
  74. package/src/directive/observe/observe.js +1 -0
  75. package/src/directive/observe/observe.spec.js +1 -0
  76. package/src/directive/options/options.spec.js +34 -0
  77. package/src/directive/ref/href.spec.js +15 -0
  78. package/src/directive/repeat/repeat.spec.js +135 -8
  79. package/src/directive/script/script.spec.js +2 -0
  80. package/src/directive/select/select.js +3 -3
  81. package/src/directive/select/select.spec.js +96 -0
  82. package/src/directive/show-hide/show-hide.js +2 -2
  83. package/src/directive/show-hide/show-hide.spec.js +19 -8
  84. package/src/directive/style/style.spec.js +7 -0
  85. package/src/directive/switch/switch.spec.js +5 -5
  86. package/src/directive/validators/validators.spec.js +1 -0
  87. package/src/loader.js +1 -0
  88. package/src/public.js +10 -2
  89. package/src/router/common/coreservices.js +2 -0
  90. package/src/router/directives/state-directives.js +14 -6
  91. package/src/router/directives/state-directives.spec.js +83 -0
  92. package/src/router/directives/view-directive.js +13 -4
  93. package/src/router/directives/view-directive.spec.js +71 -25
  94. package/src/router/hooks/lazy-load.js +2 -2
  95. package/src/router/hooks/views.js +5 -3
  96. package/src/router/resolve/resolvable.js +6 -3
  97. package/src/router/resolve/resolve-context.js +2 -2
  98. package/src/router/state/state-service.js +4 -4
  99. package/src/router/state/state.spec.js +5 -2
  100. package/src/router/state/state.test.js +1 -1
  101. package/src/router/state/views.js +10 -7
  102. package/src/router/template-factory.js +6 -3
  103. package/src/router/template-factory.spec.js +4 -0
  104. package/src/router/transition/transition-hook.js +1 -1
  105. package/src/router/transition/transition.js +1 -1
  106. package/src/router/view-hook.spec.js +2 -2
  107. package/src/router/view-scroll.js +6 -4
  108. package/src/services/browser.js +5 -8
  109. package/src/services/http/http.js +9 -6
  110. package/src/services/http/http.spec.js +31 -30
  111. package/src/services/http/template-request.spec.js +10 -0
  112. package/src/services/http-backend/http-backend.spec.js +3 -3
  113. package/src/services/template-request.js +4 -2
  114. package/src/shared/common.js +2 -1
  115. package/types/core/location/location.d.ts +36 -31
  116. package/types/core/parse/parse.d.ts +0 -26
  117. package/types/core/scope/scope.d.ts +11 -11
  118. package/src/core/model/model.js +0 -944
  119. package/src/core/model/model.spec.js +0 -3012
  120. package/types/core/model/model.d.ts +0 -204
@@ -55,18 +55,21 @@ describe("ngRepeat", () => {
55
55
  Array.prototype.extraProperty = "should be ignored";
56
56
  // INIT
57
57
  scope.items = [{ name: "misko" }, { name: "shyam" }];
58
+ scope.$digest();
58
59
  expect(element.find("li").length).toEqual(2);
59
60
  expect(element.text()).toEqual("misko;shyam;");
60
61
  delete Array.prototype.extraProperty;
61
62
 
62
63
  // GROW
63
64
  scope.items.push({ name: "adam" });
65
+ scope.$digest();
64
66
  expect(element.find("li").length).toEqual(3);
65
67
  expect(element.text()).toEqual("misko;shyam;adam;");
66
68
 
67
69
  // // SHRINK
68
70
  scope.items.pop();
69
71
  scope.items.shift();
72
+ scope.$digest();
70
73
  expect(element.find("li").length).toEqual(1);
71
74
  expect(element.text()).toEqual("shyam;");
72
75
  });
@@ -76,10 +79,14 @@ describe("ngRepeat", () => {
76
79
  "<ul>" + '<li ng-repeat="item in ::items">{{item.name}};</li>' + "</ul>",
77
80
  )(scope);
78
81
 
82
+ scope.$digest();
83
+
79
84
  scope.items = [{ name: "misko" }, { name: "shyam" }];
85
+ scope.$digest();
80
86
  expect(element.find("li").length).toEqual(2);
81
87
  expect(element.text()).toEqual("misko;shyam;");
82
88
  scope.items.push({ name: "adam" });
89
+ scope.$digest();
83
90
  expect(element.find("li").length).toEqual(2);
84
91
  expect(element.text()).toEqual("misko;shyam;");
85
92
  });
@@ -89,10 +96,14 @@ describe("ngRepeat", () => {
89
96
  "<ul>" + '<li ng-repeat="item in items">{{::item.name}};</li>' + "</ul>",
90
97
  )(scope);
91
98
 
99
+ scope.$digest();
100
+
92
101
  scope.items = [{ name: "misko" }, { name: "shyam" }];
102
+ scope.$digest();
93
103
  expect(element.find("li").length).toEqual(2);
94
104
  expect(element.text()).toEqual("misko;shyam;");
95
105
  scope.items.push({ name: "adam" });
106
+ scope.$digest();
96
107
  expect(element.find("li").length).toEqual(3);
97
108
  expect(element.text()).toEqual("misko;shyam;adam;");
98
109
  });
@@ -109,6 +120,7 @@ describe("ngRepeat", () => {
109
120
 
110
121
  const htmlCollection = document.getElementsByClassName("test");
111
122
  scope.items = htmlCollection;
123
+ scope.$digest();
112
124
  expect(element.find("li").length).toEqual(3);
113
125
  expect(element.text()).toEqual("x;y;x;");
114
126
 
@@ -131,6 +143,7 @@ describe("ngRepeat", () => {
131
143
  )(scope);
132
144
 
133
145
  scope.items = collection;
146
+ scope.$digest();
134
147
  expect(element.find("li").length).toEqual(3);
135
148
  expect(element.text()).toEqual("x;y;z;");
136
149
  });
@@ -142,6 +155,7 @@ describe("ngRepeat", () => {
142
155
  "</ul>",
143
156
  )(scope);
144
157
  scope.items = { misko: "swe", shyam: "set" };
158
+ scope.$digest();
145
159
  expect(element.text()).toEqual("misko:swe|shyam:set|");
146
160
  });
147
161
 
@@ -152,6 +166,7 @@ describe("ngRepeat", () => {
152
166
  "</ul>",
153
167
  )(scope);
154
168
  scope.items = { me: "swe", you: "set" };
169
+ scope.$digest();
155
170
  expect(element.text()).toEqual("me:swe|you:set|");
156
171
  });
157
172
 
@@ -168,6 +183,7 @@ describe("ngRepeat", () => {
168
183
  dogname: "Bingo",
169
184
  codename: "20",
170
185
  };
186
+ scope.$digest();
171
187
  expect(element.text()).toEqual(
172
188
  "age:20|wealth:20|prodname:Bingo|dogname:Bingo|codename:20|",
173
189
  );
@@ -185,9 +201,11 @@ describe("ngRepeat", () => {
185
201
  items.shyam = "set";
186
202
 
187
203
  scope.items = items;
204
+ scope.$digest();
188
205
  expect(element.text()).toEqual("misko:swe|shyam:set|");
189
206
 
190
207
  delete items.shyam;
208
+ scope.$digest();
191
209
  expect(element.text()).toEqual("misko:swe|");
192
210
  });
193
211
 
@@ -199,10 +217,12 @@ describe("ngRepeat", () => {
199
217
  "</ul>",
200
218
  )(scope);
201
219
  scope.items = [{ id: "misko" }, { id: "igor" }];
220
+ scope.$digest();
202
221
  const li0 = element.find("li")[0];
203
222
  const li1 = element.find("li")[1];
204
223
 
205
224
  scope.items.push(scope.items.shift());
225
+ scope.$digest();
206
226
  expect(element.find("li")[0]).toBe(li1);
207
227
  expect(element.find("li")[1]).toBe(li0);
208
228
  });
@@ -214,10 +234,12 @@ describe("ngRepeat", () => {
214
234
  "</ul>",
215
235
  )(scope);
216
236
  scope.items = [{ name: "misko" }, { name: "igor" }];
237
+ scope.$digest();
217
238
  const li0 = element.find("li")[0];
218
239
  const li1 = element.find("li")[1];
219
240
 
220
241
  scope.items.push(scope.items.shift());
242
+ scope.$digest();
221
243
  expect(element.find("li")[0]).toBe(li1);
222
244
  expect(element.find("li")[1]).toBe(li0);
223
245
  });
@@ -232,6 +254,8 @@ describe("ngRepeat", () => {
232
254
  "</ul>",
233
255
  )(scope);
234
256
  scope.items = [{ name: "igor" }, { name: "misko" }];
257
+ scope.$digest();
258
+
235
259
  expect(element.find("li").text()).toBe("igor;");
236
260
  });
237
261
 
@@ -253,12 +277,14 @@ describe("ngRepeat", () => {
253
277
  { id: 1, name: "igor" },
254
278
  { id: 2, name: "misko" },
255
279
  ];
280
+ scope.$digest();
256
281
  expect(element.text()).toBe("igor;misko;");
257
282
 
258
283
  const li0 = element.find("li")[0];
259
284
  const li1 = element.find("li")[1];
260
285
 
261
286
  scope.items.push(scope.items.shift());
287
+ scope.$digest();
262
288
  expect(element.find("li")[0]).toBe(li1);
263
289
  expect(element.find("li")[1]).toBe(li0);
264
290
  });
@@ -273,61 +299,75 @@ describe("ngRepeat", () => {
273
299
  Array.prototype.extraProperty = "should be ignored";
274
300
  // INIT
275
301
  scope.items = [true, true, true];
302
+ scope.$digest();
276
303
  expect(element.find("li").length).toEqual(3);
277
304
  expect(element.text()).toEqual("true;true;true;");
278
305
  delete Array.prototype.extraProperty;
279
306
 
280
307
  scope.items = [false, true, true];
308
+ scope.$digest();
281
309
  expect(element.find("li").length).toEqual(3);
282
310
  expect(element.text()).toEqual("false;true;true;");
283
311
 
284
312
  scope.items = [false, true, false];
313
+ scope.$digest();
285
314
  expect(element.find("li").length).toEqual(3);
286
315
  expect(element.text()).toEqual("false;true;false;");
287
316
 
288
317
  scope.items = [true];
318
+ scope.$digest();
289
319
  expect(element.find("li").length).toEqual(1);
290
320
  expect(element.text()).toEqual("true;");
291
321
 
292
322
  scope.items = [true, true, false];
323
+ scope.$digest();
293
324
  expect(element.find("li").length).toEqual(3);
294
325
  expect(element.text()).toEqual("true;true;false;");
295
326
 
296
327
  scope.items = [true, false, false];
328
+ scope.$digest();
297
329
  expect(element.find("li").length).toEqual(3);
298
330
  expect(element.text()).toEqual("true;false;false;");
299
331
 
300
332
  // string
301
333
  scope.items = ["a", "a", "a"];
334
+ scope.$digest();
302
335
  expect(element.find("li").length).toEqual(3);
303
336
  expect(element.text()).toEqual("a;a;a;");
304
337
 
305
338
  scope.items = ["ab", "a", "a"];
339
+ scope.$digest();
306
340
  expect(element.find("li").length).toEqual(3);
307
341
  expect(element.text()).toEqual("ab;a;a;");
308
342
 
309
343
  scope.items = ["test"];
344
+ scope.$digest();
310
345
  expect(element.find("li").length).toEqual(1);
311
346
  expect(element.text()).toEqual("test;");
312
347
 
313
348
  scope.items = ["same", "value"];
349
+ scope.$digest();
314
350
  expect(element.find("li").length).toEqual(2);
315
351
  expect(element.text()).toEqual("same;value;");
316
352
 
317
353
  // number
318
354
  scope.items = [12, 12, 12];
355
+ scope.$digest();
319
356
  expect(element.find("li").length).toEqual(3);
320
357
  expect(element.text()).toEqual("12;12;12;");
321
358
 
322
359
  scope.items = [53, 12, 27];
360
+ scope.$digest();
323
361
  expect(element.find("li").length).toEqual(3);
324
362
  expect(element.text()).toEqual("53;12;27;");
325
363
 
326
364
  scope.items = [89];
365
+ scope.$digest();
327
366
  expect(element.find("li").length).toEqual(1);
328
367
  expect(element.text()).toEqual("89;");
329
368
 
330
369
  scope.items = [89, 23];
370
+ scope.$digest();
331
371
  expect(element.find("li").length).toEqual(2);
332
372
  expect(element.text()).toEqual("89;23;");
333
373
  });
@@ -343,6 +383,7 @@ describe("ngRepeat", () => {
343
383
  )(scope);
344
384
  document.getElementById("dummy").appendChild(element[0]);
345
385
  scope.items = { misko: true, shyam: true, zhenbo: true };
386
+ scope.$digest();
346
387
  expect(element.find("li").length).toEqual(3);
347
388
  expect(element.text()).toEqual("misko:true;shyam:true;zhenbo:true;");
348
389
  element.find("input").eq(0)[0].click();
@@ -365,6 +406,7 @@ describe("ngRepeat", () => {
365
406
  expect(element.find("input")[2].checked).toBe(true);
366
407
 
367
408
  scope.items = { misko: false, shyam: true, zhenbo: true };
409
+ scope.$digest();
368
410
  expect(element.text()).toEqual("misko:false;shyam:true;zhenbo:true;");
369
411
  expect(element.find("input")[0].checked).toBe(false);
370
412
  expect(element.find("input")[1].checked).toBe(true);
@@ -383,6 +425,8 @@ describe("ngRepeat", () => {
383
425
  '<li ng-repeat="(k, v) in [1, 2] track by trackBy(k, v)"></li>' +
384
426
  "</ul>",
385
427
  )(scope);
428
+ scope.$digest();
429
+
386
430
  expect(scope.trackBy).toHaveBeenCalledTimes(2);
387
431
  expect(scope.trackBy.calls.argsFor(0)).toEqual([0, 1]);
388
432
  expect(scope.trackBy.calls.argsFor(1)).toEqual([1, 2]);
@@ -401,6 +445,8 @@ describe("ngRepeat", () => {
401
445
  "</li>" +
402
446
  "</ul>",
403
447
  )(scope);
448
+ scope.$digest();
449
+
404
450
  expect(scope.trackBy).toHaveBeenCalledTimes(4);
405
451
  expect(scope.trackBy.calls.argsFor(0)).toEqual([0, 1, 0, 3]);
406
452
  expect(scope.trackBy.calls.argsFor(1)).toEqual([0, 1, 1, 4]);
@@ -425,7 +471,11 @@ describe("ngRepeat", () => {
425
471
  ];
426
472
 
427
473
  expect(scope.results).toBeUndefined();
474
+ scope.$digest();
475
+
428
476
  scope.x = "bl";
477
+ scope.$digest();
478
+
429
479
  expect(scope.results).toEqual([
430
480
  { name: "blue" },
431
481
  { name: "black" },
@@ -433,6 +483,8 @@ describe("ngRepeat", () => {
433
483
  ]);
434
484
 
435
485
  scope.items = [];
486
+ scope.$digest();
487
+
436
488
  expect(scope.results).toEqual([]);
437
489
  });
438
490
 
@@ -447,9 +499,12 @@ describe("ngRepeat", () => {
447
499
  )(scope);
448
500
 
449
501
  scope.items = [1, 2, 3, 4, 5, 6];
502
+ scope.$digest();
450
503
  expect(element.text().trim()).toEqual("123456");
451
504
 
452
505
  scope.x = "0";
506
+ scope.$digest();
507
+
453
508
  expect(element.text().trim()).toEqual("No results found...");
454
509
  });
455
510
 
@@ -535,6 +590,8 @@ describe("ngRepeat", () => {
535
590
  };
536
591
  scope.items = [{ name: "igor" }, { name: "misko" }];
537
592
 
593
+ scope.$digest();
594
+
538
595
  expect(element.text()).toEqual("igor/misko/");
539
596
  });
540
597
 
@@ -549,6 +606,8 @@ describe("ngRepeat", () => {
549
606
 
550
607
  scope.items = [{ name: "igor" }, { name: "misko" }];
551
608
 
609
+ scope.$digest();
610
+
552
611
  expect(element.text()).toEqual("misko/");
553
612
  });
554
613
 
@@ -564,6 +623,7 @@ describe("ngRepeat", () => {
564
623
  )(scope);
565
624
  scope.items = new Class();
566
625
  scope.items.name = "value";
626
+ scope.$digest();
567
627
  expect(element.text()).toEqual("name:value;");
568
628
  });
569
629
 
@@ -586,6 +646,7 @@ describe("ngRepeat", () => {
586
646
  "</ul>",
587
647
  )(scope);
588
648
  scope.items = ["misko", "shyam", "frodo"];
649
+ scope.$digest();
589
650
  expect(element.text()).toEqual("misko:0|shyam:1|frodo:2|");
590
651
  });
591
652
 
@@ -596,6 +657,7 @@ describe("ngRepeat", () => {
596
657
  "</ul>",
597
658
  )(scope);
598
659
  scope.items = { misko: "m", shyam: "s", frodo: "f" };
660
+ scope.$digest();
599
661
  expect(element.text()).toEqual("misko:m:0|shyam:s:1|frodo:f:2|");
600
662
  });
601
663
 
@@ -606,6 +668,7 @@ describe("ngRepeat", () => {
606
668
  "</ul>",
607
669
  )(scope);
608
670
  scope.items = { misko: "m", shyam: "s", frodo: "f", length: 0 };
671
+ scope.$digest();
609
672
  expect(element.text()).toEqual(
610
673
  "misko:m:0|shyam:s:1|frodo:f:2|length:0:3|",
611
674
  );
@@ -618,11 +681,13 @@ describe("ngRepeat", () => {
618
681
  "</ul>",
619
682
  )(scope);
620
683
  scope.items = ["misko", "shyam", "doug"];
684
+ scope.$digest();
621
685
  expect(element.text()).toEqual(
622
686
  "misko:true-false-false|shyam:false-true-false|doug:false-false-true|",
623
687
  );
624
688
 
625
689
  scope.items.push("frodo");
690
+ scope.$digest();
626
691
  expect(element.text()).toEqual(
627
692
  "misko:true-false-false|" +
628
693
  "shyam:false-true-false|" +
@@ -632,11 +697,13 @@ describe("ngRepeat", () => {
632
697
 
633
698
  scope.items.pop();
634
699
  scope.items.pop();
700
+ scope.$digest();
635
701
  expect(element.text()).toEqual(
636
702
  "misko:true-false-false|shyam:false-false-true|",
637
703
  );
638
704
 
639
705
  scope.items.pop();
706
+ scope.$digest();
640
707
  expect(element.text()).toEqual("misko:true-false-true|");
641
708
  });
642
709
 
@@ -647,11 +714,13 @@ describe("ngRepeat", () => {
647
714
  "</ul>",
648
715
  )(scope);
649
716
  scope.items = ["misko", "shyam", "doug"];
717
+ scope.$digest();
650
718
  expect(element.text()).toEqual(
651
719
  "misko:true-false|shyam:false-true|doug:true-false|",
652
720
  );
653
721
 
654
722
  scope.items.push("frodo");
723
+ scope.$digest();
655
724
  expect(element.text()).toBe(
656
725
  "misko:true-false|" +
657
726
  "shyam:false-true|" +
@@ -661,6 +730,7 @@ describe("ngRepeat", () => {
661
730
 
662
731
  scope.items.shift();
663
732
  scope.items.pop();
733
+ scope.$digest();
664
734
  expect(element.text()).toBe("shyam:true-false|doug:false-true|");
665
735
  });
666
736
 
@@ -671,6 +741,7 @@ describe("ngRepeat", () => {
671
741
  "</ul>",
672
742
  )(scope);
673
743
  scope.items = { misko: "m", shyam: "s", doug: "d", frodo: "f" };
744
+ scope.$digest();
674
745
  expect(element.text()).toEqual(
675
746
  "misko:m:true-false-false|" +
676
747
  "shyam:s:false-true-false|" +
@@ -680,11 +751,13 @@ describe("ngRepeat", () => {
680
751
 
681
752
  delete scope.items.doug;
682
753
  delete scope.items.frodo;
754
+ scope.$digest();
683
755
  expect(element.text()).toEqual(
684
756
  "misko:m:true-false-false|shyam:s:false-false-true|",
685
757
  );
686
758
 
687
759
  delete scope.items.shyam;
760
+ scope.$digest();
688
761
  expect(element.text()).toEqual("misko:m:true-false-true|");
689
762
  });
690
763
 
@@ -695,6 +768,7 @@ describe("ngRepeat", () => {
695
768
  "</ul>",
696
769
  )(scope);
697
770
  scope.items = { misko: "m", shyam: "s", doug: "d", frodo: "f" };
771
+ scope.$digest();
698
772
  expect(element.text()).toBe(
699
773
  "misko:m:true-false|" +
700
774
  "shyam:s:false-true|" +
@@ -704,6 +778,7 @@ describe("ngRepeat", () => {
704
778
 
705
779
  delete scope.items.frodo;
706
780
  delete scope.items.shyam;
781
+ scope.$digest();
707
782
  expect(element.text()).toBe("misko:m:true-false|doug:d:false-true|");
708
783
  });
709
784
 
@@ -720,6 +795,8 @@ describe("ngRepeat", () => {
720
795
  frodo: "f",
721
796
  $toBeFilteredOut: "xxxx",
722
797
  };
798
+ scope.$digest();
799
+
723
800
  expect(element.text()).toEqual(
724
801
  "misko:m:true-false-false|" +
725
802
  "shyam:s:false-true-false|" +
@@ -741,6 +818,7 @@ describe("ngRepeat", () => {
741
818
  frodo: "f",
742
819
  $toBeFilteredOut: "xxxx",
743
820
  };
821
+ scope.$digest();
744
822
  expect(element.text()).toEqual(
745
823
  "misko:m:true-false|" +
746
824
  "shyam:s:false-true|" +
@@ -756,6 +834,8 @@ describe("ngRepeat", () => {
756
834
  scope.items = ["a", "b", "c"];
757
835
  scope.items.$$hashKey = "xxx";
758
836
  scope.items.$root = "yyy";
837
+ scope.$digest();
838
+
759
839
  expect(element.text()).toEqual("a|b|c|");
760
840
  });
761
841
 
@@ -771,6 +851,8 @@ describe("ngRepeat", () => {
771
851
  ["a", "b"],
772
852
  ["c", "d"],
773
853
  ];
854
+ scope.$digest();
855
+
774
856
  expect(element.text()).toEqual("a|b|Xc|d|X");
775
857
  });
776
858
 
@@ -781,6 +863,8 @@ describe("ngRepeat", () => {
781
863
  scope.array = ["a", "b", "c"];
782
864
  scope.array.foo = "23";
783
865
  scope.array.bar = function () {};
866
+ scope.$digest();
867
+
784
868
  expect(element.text()).toBe("a|b|c|");
785
869
  });
786
870
 
@@ -791,6 +875,8 @@ describe("ngRepeat", () => {
791
875
  scope.array = ["a", "b"];
792
876
  scope.array[4] = "c";
793
877
  scope.array[6] = "d";
878
+ scope.$digest();
879
+
794
880
  expect(element.text()).toBe("a|b|||c||d|");
795
881
  });
796
882
 
@@ -799,6 +885,8 @@ describe("ngRepeat", () => {
799
885
  '<ul><li ng-repeat="item in array">{{item}}|</li></ul>',
800
886
  )(scope);
801
887
  scope.array = ["a", 1, null, undefined, {}];
888
+ scope.$digest();
889
+
802
890
  expect(element.text()).toMatch(/a\|1\|\|\|\{\s*\}\|/);
803
891
  });
804
892
 
@@ -807,11 +895,15 @@ describe("ngRepeat", () => {
807
895
  '<ul><li ng-repeat="item in array">{{item}}|</li></ul>',
808
896
  )(scope);
809
897
  scope.array = ["a", "b"];
898
+ scope.$digest();
899
+
810
900
  let lis = element.find("li");
811
901
  lis.eq(0).data("mark", "a");
812
902
  lis.eq(1).data("mark", "b");
813
903
 
814
904
  scope.array = ["b", "a"];
905
+ scope.$digest();
906
+
815
907
  lis = element.find("li");
816
908
  expect(lis.eq(0).data("mark")).toEqual("b");
817
909
  expect(lis.eq(1).data("mark")).toEqual("a");
@@ -986,6 +1078,8 @@ describe("ngRepeat", () => {
986
1078
  "</div>",
987
1079
  )(scope);
988
1080
 
1081
+ scope.$digest();
1082
+
989
1083
  const ends = element.find("p");
990
1084
  expect(ends.length).toBe(3);
991
1085
 
@@ -994,6 +1088,8 @@ describe("ngRepeat", () => {
994
1088
  element[0].insertBefore(extra, ends[1]);
995
1089
 
996
1090
  scope.values.splice(1, 1);
1091
+ scope.$digest();
1092
+
997
1093
  // expect the strong tag to be removed too
998
1094
  expect(
999
1095
  Array.from(element[0].children).map((x) => x.tagName.toLowerCase()),
@@ -1011,6 +1107,8 @@ describe("ngRepeat", () => {
1011
1107
  "</div>",
1012
1108
  )(scope);
1013
1109
 
1110
+ scope.$digest();
1111
+
1014
1112
  const ends = element.find("p");
1015
1113
  expect(ends.length).toBe(3);
1016
1114
 
@@ -1020,6 +1118,8 @@ describe("ngRepeat", () => {
1020
1118
 
1021
1119
  // move the third block to the beginning
1022
1120
  scope.values.unshift(scope.values.pop());
1121
+ scope.$digest();
1122
+
1023
1123
  // expect the strong tag to be moved too
1024
1124
  expect(
1025
1125
  Array.from(element[0].children).map((x) => x.tagName.toLowerCase()),
@@ -1055,11 +1155,13 @@ describe("ngRepeat", () => {
1055
1155
  d = 4;
1056
1156
 
1057
1157
  scope.items = [a, b, c];
1158
+ scope.$digest();
1058
1159
  lis = element.find("li");
1059
1160
  });
1060
1161
 
1061
1162
  it("should preserve the order of elements", () => {
1062
1163
  scope.items = [a, c, d];
1164
+ scope.$digest();
1063
1165
  const newElements = element.find("li");
1064
1166
  expect(newElements[0]).toEqual(lis[0]);
1065
1167
  expect(newElements[1]).toEqual(lis[2]);
@@ -1068,39 +1170,47 @@ describe("ngRepeat", () => {
1068
1170
 
1069
1171
  it("should throw error on adding existing duplicates and recover", () => {
1070
1172
  scope.items = [a, a, a];
1173
+ scope.$digest();
1071
1174
  expect(logs.shift().message).toMatch(/Duplicate key/);
1072
1175
 
1073
1176
  // recover
1074
1177
  scope.items = [a];
1178
+ scope.$digest();
1075
1179
  let newElements = element.find("li");
1076
1180
  expect(newElements.length).toEqual(1);
1077
1181
  expect(newElements[0]).toEqual(lis[0]);
1078
1182
 
1079
1183
  scope.items = [];
1184
+ scope.$digest();
1080
1185
  newElements = element.find("li");
1081
1186
  expect(newElements.length).toEqual(0);
1082
1187
  });
1083
1188
 
1084
1189
  it("should throw error on new duplicates and recover", () => {
1085
1190
  scope.items = [d, d, d];
1191
+ scope.$digest();
1086
1192
  expect(logs.shift().message).toMatch(/Duplicate key/);
1087
1193
 
1088
1194
  // recover
1089
1195
  scope.items = [a];
1196
+ scope.$digest();
1090
1197
  let newElements = element.find("li");
1091
1198
  expect(newElements.length).toEqual(1);
1092
1199
  expect(newElements[0]).toEqual(lis[0]);
1093
1200
 
1094
1201
  scope.items = [];
1202
+ scope.$digest();
1095
1203
  newElements = element.find("li");
1096
1204
  expect(newElements.length).toEqual(0);
1097
1205
  });
1098
1206
 
1099
1207
  it("should reverse items when the collection is reversed", () => {
1100
1208
  scope.items = [a, b, c];
1209
+ scope.$digest();
1101
1210
  lis = element.find("li");
1102
1211
 
1103
1212
  scope.items = [c, b, a];
1213
+ scope.$digest();
1104
1214
  const newElements = element.find("li");
1105
1215
  expect(newElements.length).toEqual(3);
1106
1216
  expect(newElements[0]).toEqual(lis[2]);
@@ -1113,10 +1223,12 @@ describe("ngRepeat", () => {
1113
1223
  // model that is composed of primitives.
1114
1224
 
1115
1225
  scope.items = ["hello", "cau", "ahoj"];
1226
+ scope.$digest();
1116
1227
  lis = element.find("li");
1117
1228
  lis[2].id = "yes";
1118
1229
 
1119
1230
  scope.items = ["ahoj", "hello", "cau"];
1231
+ scope.$digest();
1120
1232
  const newLis = element.find("li");
1121
1233
  expect(newLis.length).toEqual(3);
1122
1234
  expect(newLis[0]).toEqual(lis[2]);
@@ -1126,9 +1238,15 @@ describe("ngRepeat", () => {
1126
1238
 
1127
1239
  it("should be stable even if the collection is initially undefined", () => {
1128
1240
  scope.items = undefined;
1241
+ scope.$digest();
1242
+
1129
1243
  scope.items = [{ name: "A" }, { name: "B" }, { name: "C" }];
1244
+ scope.$digest();
1245
+
1130
1246
  lis = element.find("li");
1131
1247
  scope.items.shift();
1248
+ scope.$digest();
1249
+
1132
1250
  const newLis = element.find("li");
1133
1251
  expect(newLis.length).toBe(2);
1134
1252
  expect(newLis[0]).toBe(lis[1]);
@@ -1154,6 +1272,7 @@ describe("ngRepeat", () => {
1154
1272
  element = $compile(
1155
1273
  '<div><div ng-repeat="i in [1,2]" elm-trans>{{i}}</div></div>',
1156
1274
  )(scope);
1275
+ scope.$digest();
1157
1276
  expect(element.text()).toBe("[[1]][[2]]");
1158
1277
  });
1159
1278
 
@@ -1167,6 +1286,7 @@ describe("ngRepeat", () => {
1167
1286
  scope = injector.get("$rootScope");
1168
1287
  $templateCache = injector.get("$templateCache");
1169
1288
  $templateCache.set("test.html", "hello");
1289
+ scope.$digest();
1170
1290
  setTimeout(() => {
1171
1291
  expect(element.text()).toBe("hellohello");
1172
1292
  done();
@@ -1177,6 +1297,7 @@ describe("ngRepeat", () => {
1177
1297
  element = $compile(
1178
1298
  '<div><div ng-repeat="i in [1,2,3,4]" ng-if="i % 2 === 0">{{i}};</div></div>',
1179
1299
  )(scope);
1300
+ scope.$digest();
1180
1301
  expect(element.text()).toBe("2;4;");
1181
1302
  });
1182
1303
  });
@@ -1195,8 +1316,10 @@ describe("ngRepeat", () => {
1195
1316
  "</div>",
1196
1317
  )(scope);
1197
1318
 
1319
+ scope.$digest();
1198
1320
  expect(element.text()).toEqual("T1:D1;T2:D2;");
1199
1321
  scope.books.push({ title: "T3", description: "D3" });
1322
+ scope.$digest();
1200
1323
  expect(element.text()).toEqual("T1:D1;T2:D2;T3:D3;");
1201
1324
  });
1202
1325
 
@@ -1211,10 +1334,12 @@ describe("ngRepeat", () => {
1211
1334
  "</div>",
1212
1335
  )(scope);
1213
1336
 
1337
+ scope.$digest();
1214
1338
  expect(element.find("div").length).toBe(6);
1215
1339
  scope.values.shift();
1216
1340
  scope.values.push(4);
1217
1341
 
1342
+ scope.$digest();
1218
1343
  expect(element.find("div").length).toBe(6);
1219
1344
  expect(element.text()).not.toContain("if:1;");
1220
1345
  });
@@ -1267,6 +1392,7 @@ describe("ngRepeat", () => {
1267
1392
  const element = $compile('<iso><span ng-bind="val"></span></iso>')(
1268
1393
  $rootScope,
1269
1394
  );
1395
+ $rootScope.$digest();
1270
1396
  expect(element.text().trim()).toEqual("transcluded content");
1271
1397
  dealoc(element);
1272
1398
  });
@@ -1285,6 +1411,7 @@ describe("ngRepeat", () => {
1285
1411
  const element = $compile(
1286
1412
  '<div><span ng-repeat="a in [1]"><span assert-a></span></span></div>',
1287
1413
  )($rootScope);
1414
+ $rootScope.$digest();
1288
1415
  dealoc(element);
1289
1416
  });
1290
1417
  });
@@ -1356,10 +1483,10 @@ describe("ngRepeat", () => {
1356
1483
  // ),
1357
1484
  // )(scope);
1358
1485
 
1359
- // ; // re-enable the animations;
1486
+ // scope.$digest(); // re-enable the animations;
1360
1487
 
1361
1488
  // scope.items = ["1", "2", "3"];
1362
- // ;
1489
+ // scope.$digest();
1363
1490
 
1364
1491
  // item = $animate.queue.shift();
1365
1492
  // expect(item.event).toBe("enter");
@@ -1391,7 +1518,7 @@ describe("ngRepeat", () => {
1391
1518
  // )(scope);
1392
1519
 
1393
1520
  // scope.items = ["1", "2", "3"];
1394
- // ;
1521
+ // scope.$digest();
1395
1522
 
1396
1523
  // item = $animate.queue.shift();
1397
1524
  // expect(item.event).toBe("enter");
@@ -1406,7 +1533,7 @@ describe("ngRepeat", () => {
1406
1533
  // expect(item.element.text()).toBe("3");
1407
1534
 
1408
1535
  // scope.items = ["1", "3"];
1409
- // ;
1536
+ // scope.$digest();
1410
1537
 
1411
1538
  // item = $animate.queue.shift();
1412
1539
  // expect(item.event).toBe("leave");
@@ -1443,11 +1570,11 @@ describe("ngRepeat", () => {
1443
1570
  // )(scope);
1444
1571
 
1445
1572
  // scope.items = ["1", "2", "3"];
1446
- // ;
1573
+ // scope.$digest();
1447
1574
  // expect(element.text()).toBe("123");
1448
1575
 
1449
1576
  // scope.items = ["1", "3"];
1450
- // ;
1577
+ // scope.$digest();
1451
1578
 
1452
1579
  // expect(element.text()).toBe("123"); // the original order should be preserved
1453
1580
  // $animate.flush();
@@ -1472,7 +1599,7 @@ describe("ngRepeat", () => {
1472
1599
  // )(scope);
1473
1600
 
1474
1601
  // scope.items = ["1", "2", "3"];
1475
- // ;
1602
+ // scope.$digest();
1476
1603
 
1477
1604
  // item = $animate.queue.shift();
1478
1605
  // expect(item.event).toBe("enter");
@@ -1487,7 +1614,7 @@ describe("ngRepeat", () => {
1487
1614
  // expect(item.element.text()).toBe("3");
1488
1615
 
1489
1616
  // scope.items = ["2", "3", "1"];
1490
- // ;
1617
+ // scope.$digest();
1491
1618
 
1492
1619
  // item = $animate.queue.shift();
1493
1620
  // expect(item.event).toBe("move");