@angular-wave/angular.ts 0.4.2 → 0.4.4

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 (150) hide show
  1. package/dist/angular-ts.esm.js +2 -2
  2. package/dist/angular-ts.umd.js +12 -2
  3. package/index.html +74 -3
  4. package/package.json +7 -7
  5. package/src/angular.spec.js +1 -269
  6. package/src/animations/animate-css-driver.js +2 -2
  7. package/src/animations/animate-css.js +12 -21
  8. package/src/animations/animate-js-driver.js +1 -3
  9. package/src/animations/animate-js.js +4 -4
  10. package/src/animations/animate-queue.js +23 -23
  11. package/src/animations/animate-runner.js +4 -8
  12. package/src/animations/animate.md +1 -1
  13. package/src/animations/animate.spec.js +0 -21
  14. package/src/animations/animation.js +4 -4
  15. package/src/animations/shared.js +14 -12
  16. package/src/binding.spec.js +0 -1
  17. package/src/core/cache/cache.js +2 -29
  18. package/src/core/compile/attributes.js +2 -3
  19. package/src/core/compile/compile.js +260 -245
  20. package/src/core/compile/compile.spec.js +63 -317
  21. package/src/core/compile/compile.test.js +1 -1
  22. package/src/core/controller/controller.js +2 -0
  23. package/src/core/di/injector.md +1 -1
  24. package/src/core/di/injector.spec.js +0 -2
  25. package/src/core/di/internal-injector.js +2 -1
  26. package/src/core/interpolate/interpolate.js +16 -3
  27. package/src/core/interpolate/interpolate.spec.js +70 -16
  28. package/src/core/location/location.js +0 -2
  29. package/src/core/location/location.spec.js +27 -27
  30. package/src/core/{scope/scope.html → model/model.html} +1 -1
  31. package/src/core/model/model.js +944 -0
  32. package/src/core/model/model.spec.js +3012 -0
  33. package/src/core/on.spec.js +0 -7
  34. package/src/core/parse/interpreter.js +10 -7
  35. package/src/core/parse/parse.js +28 -7
  36. package/src/core/parse/parse.spec.js +95 -91
  37. package/src/core/prop.spec.js +4 -60
  38. package/src/core/sce/sce.js +1 -2
  39. package/src/core/sce/sce.spec.js +0 -8
  40. package/src/core/scope/scope.js +62 -32
  41. package/src/core/scope/scope.spec.js +25 -1960
  42. package/src/directive/aria/aria.js +3 -6
  43. package/src/directive/aria/aria.spec.js +0 -87
  44. package/src/directive/attrs/attrs.spec.js +0 -5
  45. package/src/directive/{list/list.test.js → attrs/attrs.test.js} +1 -1
  46. package/src/{core/q/q.html → directive/attrs/boolean.html} +1 -1
  47. package/src/directive/attrs/boolean.spec.js +0 -15
  48. package/src/{core/q/q.test.js → directive/attrs/boolean.test.js} +1 -2
  49. package/src/{core/timeout/timeout.html → directive/attrs/element-style.html} +4 -1
  50. package/src/directive/attrs/element-style.spec.js +0 -8
  51. package/src/{core/scope/scope.test.js → directive/attrs/element-style.test.js} +1 -2
  52. package/src/directive/attrs/src.spec.js +0 -7
  53. package/src/directive/bind/bind.spec.js +0 -33
  54. package/src/directive/bind/bing-html.spec.js +1 -4
  55. package/src/{core/interval/interval.html → directive/channel/channel.html} +1 -1
  56. package/src/directive/channel/channel.js +29 -0
  57. package/src/directive/channel/channel.spec.js +52 -0
  58. package/src/directive/channel/channel.test.js +9 -0
  59. package/src/directive/class/class.js +3 -3
  60. package/src/directive/class/class.spec.js +9 -75
  61. package/src/directive/controller/controller.spec.js +0 -13
  62. package/src/directive/events/click.spec.js +0 -3
  63. package/src/directive/events/event.spec.js +0 -6
  64. package/src/directive/form/form.js +14 -22
  65. package/src/directive/form/form.spec.js +0 -65
  66. package/src/directive/if/if.spec.js +2 -7
  67. package/src/directive/if/if.test.js +1 -2
  68. package/src/directive/include/include.js +2 -2
  69. package/src/directive/include/include.spec.js +8 -59
  70. package/src/directive/init/init.js +6 -2
  71. package/src/directive/init/init.spec.js +0 -2
  72. package/src/directive/input/input.js +1 -2
  73. package/src/directive/input/input.spec.js +191 -331
  74. package/src/directive/messages/messages.spec.js +4 -35
  75. package/src/directive/model/model.js +30 -42
  76. package/src/directive/model/model.spec.js +2 -49
  77. package/src/directive/model-options/model-options.js +22 -26
  78. package/src/directive/model-options/model-options.spec.js +0 -6
  79. package/src/directive/non-bindable/non-bindable.spec.js +0 -1
  80. package/src/directive/observe/observe.js +0 -1
  81. package/src/directive/observe/observe.spec.js +0 -1
  82. package/src/directive/options/options.js +1 -3
  83. package/src/directive/options/options.spec.js +3 -38
  84. package/src/directive/ref/href.spec.js +0 -15
  85. package/src/directive/repeat/repeat.js +2 -2
  86. package/src/directive/repeat/repeat.spec.js +56 -192
  87. package/src/directive/script/script.spec.js +0 -2
  88. package/src/directive/select/select.js +3 -3
  89. package/src/directive/select/select.spec.js +9 -106
  90. package/src/directive/show-hide/show-hide.js +2 -2
  91. package/src/directive/show-hide/show-hide.spec.js +8 -19
  92. package/src/directive/style/style.spec.js +0 -7
  93. package/src/directive/switch/switch.js +1 -2
  94. package/src/directive/switch/switch.spec.js +5 -5
  95. package/src/directive/validators/validators.spec.js +0 -1
  96. package/src/loader.js +0 -1
  97. package/src/public.js +75 -80
  98. package/src/router/common/coreservices.js +0 -2
  99. package/src/router/directives/state-directives.js +24 -30
  100. package/src/router/directives/state-directives.spec.js +0 -83
  101. package/src/router/directives/view-directive.js +6 -15
  102. package/src/router/directives/view-directive.spec.js +25 -71
  103. package/src/router/hooks/lazy-load.js +2 -2
  104. package/src/router/hooks/views.js +3 -5
  105. package/src/router/resolve/resolvable.js +3 -6
  106. package/src/router/resolve/resolve-context.js +2 -2
  107. package/src/router/state/state-service.js +4 -4
  108. package/src/router/state/state.spec.js +2 -5
  109. package/src/router/state/views.js +9 -12
  110. package/src/router/template-factory.js +3 -6
  111. package/src/router/template-factory.spec.js +0 -4
  112. package/src/router/transition/transition-hook.js +1 -1
  113. package/src/router/transition/transition.js +1 -1
  114. package/src/router/url/url-service.js +2 -8
  115. package/src/router/url/url-service.spec.js +3 -4
  116. package/src/router/view-hook.spec.js +2 -2
  117. package/src/router/view-scroll.js +4 -6
  118. package/src/services/http/http.js +11 -15
  119. package/src/services/http/http.spec.js +30 -31
  120. package/src/services/http/template-request.spec.js +0 -10
  121. package/src/services/http-backend/http-backend.js +19 -17
  122. package/src/services/http-backend/http-backend.spec.js +3 -3
  123. package/src/services/template-request.js +2 -4
  124. package/src/shared/common.js +6 -10
  125. package/src/shared/jqlite/jqlite.js +14 -15
  126. package/src/shared/jqlite/jqlite.spec.js +2 -2
  127. package/src/shared/utils.js +15 -92
  128. package/types/core/cache/cache.d.ts +1 -1
  129. package/types/core/model/model.d.ts +204 -0
  130. package/types/core/parse/parse.d.ts +26 -0
  131. package/types/core/scope/scope.d.ts +22 -21
  132. package/types/directive/channel/channel.d.ts +11 -0
  133. package/types/directive/form/form.d.ts +1 -0
  134. package/types/shared/common.d.ts +0 -1
  135. package/types/shared/utils.d.ts +0 -35
  136. package/src/core/interval/interval-factory.js +0 -50
  137. package/src/core/interval/interval.js +0 -77
  138. package/src/core/interval/interval.md +0 -123
  139. package/src/core/interval/interval.spec.js +0 -280
  140. package/src/core/q/q.js +0 -472
  141. package/src/core/q/q.md +0 -211
  142. package/src/core/q/q.spec.js +0 -2748
  143. package/src/core/timeout/timeout.js +0 -109
  144. package/src/core/timeout/timeout.spec.js +0 -354
  145. package/src/core/timeout/timout.test.js +0 -12
  146. package/src/directive/list/list.html +0 -18
  147. package/src/directive/list/list.js +0 -46
  148. package/src/directive/list/list.md +0 -22
  149. package/src/directive/list/list.spec.js +0 -172
  150. package/types/directive/list/list.d.ts +0 -4
@@ -5,7 +5,7 @@ const TEST_URL = "src/core/compile/compile.html?random=false";
5
5
  test("unit tests contain no errors", async ({ page }) => {
6
6
  await page.goto(TEST_URL);
7
7
  await page.content();
8
- await page.waitForTimeout(5000);
8
+ await page.waitForTimeout(4000);
9
9
  await expect(page.locator(".jasmine-overall-result")).toHaveText(
10
10
  /0 failures/,
11
11
  );
@@ -112,6 +112,7 @@ export class ControllerProvider {
112
112
  instance = Object.create(controllerPrototype || null);
113
113
 
114
114
  if (identifier) {
115
+ instance["$controllerIdentifier"] = identifier;
115
116
  this.addIdentifier(
116
117
  locals,
117
118
  identifier,
@@ -134,6 +135,7 @@ export class ControllerProvider {
134
135
  ) {
135
136
  instance = result;
136
137
  if (identifier) {
138
+ instance["$controllerIdentifier"] = identifier;
137
139
  this.addIdentifier(
138
140
  locals,
139
141
  identifier,
@@ -28,7 +28,7 @@
28
28
  - // use the type inference to auto inject arguments, or use implicit injection
29
29
  - $injector.invoke(function($rootScope, $compile, $document) {
30
30
  - $compile($document)($rootScope);
31
- - $rootScope.$digest();
31
+ - ;
32
32
  - });
33
33
  - ```
34
34
 
@@ -1410,7 +1410,6 @@ describe("directive", () => {
1410
1410
  injector.loadNewModules(["a"]);
1411
1411
  injector.invoke(($compile, $rootScope) => {
1412
1412
  const elem = $compile("<div a-directive></div>")($rootScope); // compile and link
1413
- $rootScope.$digest();
1414
1413
  expect(elem.text()).toEqual("test directive");
1415
1414
  elem.remove();
1416
1415
  });
@@ -1424,7 +1423,6 @@ describe("directive", () => {
1424
1423
  injector.loadNewModules(["a"]);
1425
1424
  injector.invoke(($compile, $rootScope) => {
1426
1425
  const elem = $compile("<div a-directive></div>")($rootScope); // compile and link
1427
- $rootScope.$digest();
1428
1426
  expect(elem.text()).toEqual("test directive");
1429
1427
  elem.remove();
1430
1428
  });
@@ -114,7 +114,8 @@ class AbstractInjector {
114
114
 
115
115
  if (isClass(/** @type {string} */ (fn))) {
116
116
  args.unshift(null);
117
- return new (Function.prototype.bind.apply(fn, args))();
117
+ const res = new (Function.prototype.bind.apply(fn, args))();
118
+ return res;
118
119
  } else {
119
120
  return /** @type {Function} */ (fn).apply(self, args);
120
121
  }
@@ -332,13 +332,25 @@ export class InterpolateProvider {
332
332
  };
333
333
 
334
334
  return extend(
335
- (context) => {
335
+ (context, cb) => {
336
336
  let i = 0;
337
337
  const ii = expressions.length;
338
338
  const values = new Array(ii);
339
-
340
339
  try {
341
340
  for (; i < ii; i++) {
341
+ if (cb) {
342
+ const watchProp = expressions[i].trim();
343
+ console.log(watchProp);
344
+ context.$watch(watchProp, () => {
345
+ let vals = new Array(ii);
346
+ let j = 0;
347
+ for (; j < ii; j++) {
348
+ vals[j] = parseFns[j](context);
349
+ }
350
+ cb(compute(vals));
351
+ });
352
+ }
353
+
342
354
  values[i] = parseFns[i](context);
343
355
  }
344
356
 
@@ -348,12 +360,13 @@ export class InterpolateProvider {
348
360
  }
349
361
  },
350
362
  {
363
+ // Most likely we would need to register watches during interpolation
351
364
  // all of these properties are undocumented for now
352
365
  exp: text, // just for compatibility with regular watchers created via $watch
353
366
  expressions,
354
367
  $$watchDelegate(scope, listener) {
355
368
  let lastValue;
356
- return scope.$watchGroup(
369
+ return scope.$watch(
357
370
  parseFns,
358
371
  function interpolateFnWatcher(values, oldValues) {
359
372
  const currValue = compute(values);
@@ -1,5 +1,6 @@
1
1
  import { createInjector } from "../di/injector";
2
2
  import { Angular } from "../../loader";
3
+ import { wait } from "../../shared/test-utils";
3
4
 
4
5
  describe("$interpolate", () => {
5
6
  let $interpolate, $injector, $rootScope, $sce;
@@ -234,18 +235,22 @@ describe("$interpolate", () => {
234
235
  expect(calls.pop()).toBeUndefined();
235
236
  });
236
237
 
237
- it("should stop watching strings with no expressions after first execution", () => {
238
+ // TODO these tests shoudl be revereds
239
+ // Calling interpolation with scope should CREATE watches on scope
240
+ it("should stop watching strings with no expressions after first execution", async () => {
238
241
  const spy = jasmine.createSpy();
239
- $rootScope.$watch($interpolate("foo"), spy);
240
- $rootScope.$digest();
241
- expect(spy).toHaveBeenCalledWith("foo", "foo", $rootScope);
242
+ $rootScope.$watch($interpolate("foo")(), spy);
243
+ $rootScope.foo = "foo";
244
+ await wait();
245
+ expect(spy).toHaveBeenCalledWith("foo", undefined, $rootScope);
242
246
  expect(spy).toHaveBeenCalledTimes(1);
243
247
  });
244
248
 
245
249
  it("should stop watching strings with only constant expressions after first execution", () => {
246
250
  const spy = jasmine.createSpy();
247
- $rootScope.$watch($interpolate("foo {{42}}"), spy);
248
- $rootScope.$digest();
251
+ let res = $interpolate("foo {{42}}")($rootScope);
252
+ $rootScope.$watch(res, spy);
253
+
249
254
  expect(spy).toHaveBeenCalledWith("foo 42", "foo 42", $rootScope);
250
255
  expect(spy).toHaveBeenCalledTimes(1);
251
256
  });
@@ -264,18 +269,12 @@ describe("$interpolate", () => {
264
269
  expect(interp.$$watchDelegate).toBeDefined();
265
270
  });
266
271
 
267
- it("correctly returns new and old value when watched", function () {
272
+ it("correctly returns new value", async () => {
268
273
  const interp = $interpolate("{{expr}}");
269
- const listenerSpy = jasmine.createSpy();
270
- $rootScope.$watch(interp, listenerSpy);
274
+ $rootScope.$watch("expr", () => {});
271
275
  $rootScope.expr = 42;
272
- $rootScope.$apply();
273
- expect(listenerSpy.calls.mostRecent().args[0]).toEqual("42");
274
- expect(listenerSpy.calls.mostRecent().args[1]).toEqual("42");
275
- $rootScope.expr++;
276
- $rootScope.$apply();
277
- expect(listenerSpy.calls.mostRecent().args[0]).toEqual("43");
278
- expect(listenerSpy.calls.mostRecent().args[1]).toEqual("42");
276
+ await wait();
277
+ expect(interp($rootScope)).toEqual("42");
279
278
  });
280
279
 
281
280
  it("should support escaping interpolation signs", () => {
@@ -399,6 +398,61 @@ describe("$interpolate", () => {
399
398
  });
400
399
  });
401
400
 
401
+ describe("interpolation callbacks", () => {
402
+ it("does not require a callback", async () => {
403
+ let text;
404
+ $rootScope.expr = 42;
405
+ const interp = $interpolate("{{expr}}");
406
+
407
+ text = interp($rootScope);
408
+
409
+ expect(text).toEqual("42");
410
+ });
411
+
412
+ it("correctly invokes callback when interpolated value changes", async () => {
413
+ let counter = 0;
414
+
415
+ const interp = $interpolate("{{expr}}");
416
+
417
+ interp($rootScope, (val) => {
418
+ counter++;
419
+ });
420
+
421
+ $rootScope.expr = 42;
422
+ await wait();
423
+ expect(counter).toEqual(1);
424
+
425
+ $rootScope.expr++;
426
+ await wait();
427
+ expect(counter).toEqual(2);
428
+ });
429
+
430
+ it("returns currently interpolated text", async () => {
431
+ let text;
432
+ $rootScope.expr = 42;
433
+ const interp = $interpolate("{{expr}}");
434
+
435
+ text = interp($rootScope, (val) => {
436
+ text = val;
437
+ });
438
+
439
+ expect(text).toEqual("42");
440
+ });
441
+
442
+ it("invokes callback with newly interpolated text", async () => {
443
+ let text;
444
+ const interp = $interpolate("{{expr}}");
445
+
446
+ interp($rootScope, (val) => {
447
+ text = val;
448
+ });
449
+
450
+ $rootScope.expr = 42;
451
+ await wait();
452
+ expect(text).toEqual("42");
453
+ });
454
+ });
455
+
402
456
  describe("interpolating in a trusted context", () => {
403
457
  let sce;
404
458
 
@@ -13,7 +13,6 @@ import {
13
13
  toInt,
14
14
  toKeyValue,
15
15
  } from "../../shared/utils";
16
- import { ScopePhase } from "../scope/scope";
17
16
 
18
17
  /**
19
18
  * @typedef {Object} DefaultPorts
@@ -768,7 +767,6 @@ export function LocationProvider() {
768
767
  afterLocationChange(oldUrl, oldState);
769
768
  }
770
769
  });
771
- if ($rootScope.$$phase === ScopePhase.NONE) $rootScope.$digest();
772
770
  });
773
771
 
774
772
  // update browser
@@ -785,7 +785,7 @@ describe("$location", () => {
785
785
  // $browser,
786
786
  // "url",
787
787
  // ).and.callThrough();
788
- // $rootScope.$digest();
788
+ // ;
789
789
  // expect($browserUrl).not.toHaveBeenCalled();
790
790
  // });
791
791
  // });
@@ -815,7 +815,7 @@ describe("$location", () => {
815
815
  // }
816
816
  // });
817
817
  // expect($browser.url()).toEqual("http://server/base/#!/home");
818
- // $rootScope.$digest();
818
+ // ;
819
819
  // expect(handlerCalled).toEqual(true);
820
820
  // expect($browser.url()).toEqual("http://server/base/#!/");
821
821
  // });
@@ -829,7 +829,7 @@ describe("$location", () => {
829
829
  // });
830
830
  // inject(($location, $browser, $rootScope) => {
831
831
  // expect(() => {
832
- // $rootScope.$digest();
832
+ // ;
833
833
  // }).not.toThrow();
834
834
  // });
835
835
  // });
@@ -843,7 +843,7 @@ describe("$location", () => {
843
843
  // });
844
844
  // inject(($location, $browser, $rootScope) => {
845
845
  // expect(() => {
846
- // $rootScope.$digest();
846
+ // ;
847
847
  // }).not.toThrow();
848
848
  // });
849
849
  // });
@@ -857,7 +857,7 @@ describe("$location", () => {
857
857
  // });
858
858
  // inject(($location, $browser, $rootScope) => {
859
859
  // expect(() => {
860
- // $rootScope.$digest();
860
+ // ;
861
861
  // }).not.toThrow();
862
862
  // });
863
863
  // });
@@ -867,10 +867,10 @@ describe("$location", () => {
867
867
  // initService({ html5Mode: true, supportHistory: true });
868
868
  // mockUpBrowser({ initialUrl: "http://localhost:9876/", baseHref: "/" });
869
869
  // inject(($location, $browser, $rootScope) => {
870
- // $rootScope.$digest();
870
+ // ;
871
871
  // $browser.url("http://localhost:9876/?q='");
872
872
  // expect(() => {
873
- // $rootScope.$digest();
873
+ // ;
874
874
  // }).not.toThrow();
875
875
  // });
876
876
  // });
@@ -880,7 +880,7 @@ describe("$location", () => {
880
880
  // initService({ html5Mode: true, supportHistory: true });
881
881
  // mockUpBrowser({ initialUrl: "http://localhost:9876/", baseHref: "/" });
882
882
  // inject(($window, $location, $browser, $rootScope) => {
883
- // $rootScope.$digest();
883
+ // ;
884
884
  // $window.location.href = "http://localhost:9876/?q='";
885
885
  // expect(() => {
886
886
  // JQLite($window).triggerHandler("popstate");
@@ -901,7 +901,7 @@ describe("$location", () => {
901
901
  // $window,
902
902
  // ) => {
903
903
  // $location.url("baz");
904
- // $rootScope.$digest();
904
+ // ;
905
905
 
906
906
  // const originalUrl = $window.location.href;
907
907
 
@@ -931,7 +931,7 @@ describe("$location", () => {
931
931
  // $window,
932
932
  // ) => {
933
933
  // $location.url("baz");
934
- // $rootScope.$digest();
934
+ // ;
935
935
 
936
936
  // $rootScope.$apply(() => {
937
937
  // $rootScope.$evalAsync(() => {
@@ -969,7 +969,7 @@ describe("$location", () => {
969
969
 
970
970
  // updatePathOnLocationChangeSuccessTo("/Home");
971
971
 
972
- // $rootScope.$digest();
972
+ // ;
973
973
 
974
974
  // expect($browser.url()).toEqual("http://server/app/#!/Home");
975
975
  // expect($location.path()).toEqual("/Home");
@@ -991,7 +991,7 @@ describe("$location", () => {
991
991
 
992
992
  // updatePathOnLocationChangeSuccessTo("/");
993
993
 
994
- // $rootScope.$digest();
994
+ // ;
995
995
 
996
996
  // expect($browser.url()).toEqual("http://server/app/#!/");
997
997
  // expect($location.path()).toEqual("/");
@@ -1014,7 +1014,7 @@ describe("$location", () => {
1014
1014
  // ).and.callThrough();
1015
1015
 
1016
1016
  // updatePathOnLocationChangeSuccessTo("/Home");
1017
- // $rootScope.$digest();
1017
+ // ;
1018
1018
 
1019
1019
  // expect($browser.url()).toEqual("http://server/app/#!/Home");
1020
1020
  // expect($location.path()).toEqual("/Home");
@@ -1037,7 +1037,7 @@ describe("$location", () => {
1037
1037
  // ).and.callThrough();
1038
1038
 
1039
1039
  // updatePathOnLocationChangeSuccessTo("/");
1040
- // $rootScope.$digest();
1040
+ // ;
1041
1041
 
1042
1042
  // expect($browser.url()).toEqual("http://server/app/#!/");
1043
1043
  // expect($location.path()).toEqual("/");
@@ -1059,7 +1059,7 @@ describe("$location", () => {
1059
1059
  // const $location = $injector.get("$location");
1060
1060
  // updatePathOnLocationChangeSuccessTo("/Home");
1061
1061
 
1062
- // $rootScope.$digest();
1062
+ // ;
1063
1063
 
1064
1064
  // expect($browser.url()).toEqual("http://server/app/Home");
1065
1065
  // expect($location.path()).toEqual("/Home");
@@ -1079,7 +1079,7 @@ describe("$location", () => {
1079
1079
  // const $location = $injector.get("$location");
1080
1080
  // updatePathOnLocationChangeSuccessTo("/");
1081
1081
 
1082
- // $rootScope.$digest();
1082
+ // ;
1083
1083
 
1084
1084
  // expect($browser.url()).toEqual("http://server/app/");
1085
1085
  // expect($location.path()).toEqual("/");
@@ -1099,7 +1099,7 @@ describe("$location", () => {
1099
1099
  // const $location = $injector.get("$location");
1100
1100
  // updatePathOnLocationChangeSuccessTo("/Home");
1101
1101
 
1102
- // $rootScope.$digest();
1102
+ // ;
1103
1103
 
1104
1104
  // expect($browser.url()).toEqual("http://server/app/Home");
1105
1105
  // expect($location.path()).toEqual("/Home");
@@ -1119,7 +1119,7 @@ describe("$location", () => {
1119
1119
  // const $location = $injector.get("$location");
1120
1120
  // updatePathOnLocationChangeSuccessTo("/");
1121
1121
 
1122
- // $rootScope.$digest();
1122
+ // ;
1123
1123
 
1124
1124
  // expect($browser.url()).toEqual("http://server/app/");
1125
1125
  // expect($location.path()).toEqual("/");
@@ -1140,7 +1140,7 @@ describe("$location", () => {
1140
1140
  // const $location = $injector.get("$location");
1141
1141
  // updatePathOnLocationChangeSuccessTo("/", { q: "'" });
1142
1142
 
1143
- // $rootScope.$digest();
1143
+ // ;
1144
1144
 
1145
1145
  // expect($location.path()).toEqual("/");
1146
1146
  // expect($location.search()).toEqual({ q: "'" });
@@ -1200,7 +1200,7 @@ describe("$location", () => {
1200
1200
  // }
1201
1201
  // });
1202
1202
 
1203
- // $rootScope.$digest();
1203
+ // ;
1204
1204
  // expect($location.absUrl()).toBe(NEW_URL);
1205
1205
  // });
1206
1206
  // });
@@ -1299,7 +1299,7 @@ describe("$location", () => {
1299
1299
  // },
1300
1300
  // );
1301
1301
 
1302
- // $rootScope.$digest();
1302
+ // ;
1303
1303
  // expect($browser.url()).toBe("http://new.com/a/b#!/changed");
1304
1304
  // });
1305
1305
  // });
@@ -1310,7 +1310,7 @@ describe("$location", () => {
1310
1310
  // inject(($rootScope, $browser, $location) => {
1311
1311
  // $location.hash("test");
1312
1312
 
1313
- // $rootScope.$digest();
1313
+ // ;
1314
1314
  // expect($browser.url()).toBe("http://new.com/a/b##test");
1315
1315
  // });
1316
1316
  // });
@@ -1334,7 +1334,7 @@ describe("$location", () => {
1334
1334
  // mockUpBrowser({ initialUrl: "http://new.com/a/b/", baseHref: "/a/b/" });
1335
1335
  // inject(($location, $rootScope, $window) => {
1336
1336
  // $window.history.pushState({ b: 3 });
1337
- // $rootScope.$digest();
1337
+ // ;
1338
1338
 
1339
1339
  // expect($location.state()).toEqual({ b: 3 });
1340
1340
 
@@ -1343,7 +1343,7 @@ describe("$location", () => {
1343
1343
  // null,
1344
1344
  // `${$window.location.href}c?d=e#f`,
1345
1345
  // );
1346
- // $rootScope.$digest();
1346
+ // ;
1347
1347
 
1348
1348
  // expect($location.path()).toBe("/c");
1349
1349
  // expect($location.search()).toEqual({ d: "e" });
@@ -1358,10 +1358,10 @@ describe("$location", () => {
1358
1358
  // mockUpBrowser({ initialUrl: "http://server/app/", baseHref: "/app/" });
1359
1359
  // inject(($rootScope, $injector, $window) => {
1360
1360
  // const $location = $injector.get("$location");
1361
- // $rootScope.$digest(); // allow $location initialization to finish
1361
+ // ; // allow $location initialization to finish
1362
1362
 
1363
1363
  // $window.history.pushState({}, null, "http://server/app/Home?q='");
1364
- // $rootScope.$digest();
1364
+ // ;
1365
1365
 
1366
1366
  // expect($location.absUrl()).toEqual("http://server/app/Home?q='");
1367
1367
  // expect($location.path()).toEqual("/Home");
@@ -1375,7 +1375,7 @@ describe("$location", () => {
1375
1375
  // mockUpBrowser({ initialUrl: "http://server/app/", baseHref: "/app/" });
1376
1376
  // inject(($rootScope, $injector, $window) => {
1377
1377
  // const $location = $injector.get("$location");
1378
- // $rootScope.$digest(); // allow $location initialization to finish
1378
+ // ; // allow $location initialization to finish
1379
1379
 
1380
1380
  // $window.location.href = "http://server/app/Home?q='";
1381
1381
  // JQLite($window).triggerHandler("popstate");
@@ -10,7 +10,7 @@
10
10
  <script src="/jasmine/jasmine-5.1.2/jasmine-html.js"></script>
11
11
  <script src="/jasmine/jasmine-5.1.2/boot0.js"></script>
12
12
  <script src="/jasmine/jasmine-5.1.2/boot1.js"></script>
13
- <script type="module" src="/src/core/scope/scope.spec.js"></script>
13
+ <script type="module" src="/src/core/model/model.spec.js"></script>
14
14
  </head>
15
15
  <body>
16
16
  <div id="dummy"></div>