jasmine-core 2.9.1 → 2.99.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2399fd8959270f1010f1f663f0d654eb4fbc8ee6
4
- data.tar.gz: adf388ab54d67155d2b91c1b9c8466770e6472f9
3
+ metadata.gz: 8fa6bc01f3bebe3af74f236043dfa248343ddb9c
4
+ data.tar.gz: 6e463032dd5611aa0fcae23f5747c3798169a772
5
5
  SHA512:
6
- metadata.gz: b80bb848ba40ff33b9f3f30cdb9c781fc821c6051d6c56fb75b1872efb6c4fe718e345119e5bcc17122fe163d9d81bb4f2df7c37dfec16c6f67e9868c19a7e94
7
- data.tar.gz: 151eb2d23147153fad959843b15ed8332aff7923265d1025ca056e0e2e94a6d79acd05b0c229ec44bd3881df06c22d4de6306e283b0066da099cc54fdbeffbf4
6
+ metadata.gz: c2e443a7bacb5598138901ccca2e38f942c38c27105f46843f235d0cee3fd2d3bdc3d8f951e5b69b2c5e52df051300a030b171d64f534762be732421e3969b66
7
+ data.tar.gz: 63dc193aad536b5cce1bee3a3ec944c3a005b60fe023c7ef534463290d687ef0d2856840d66e7db52d4a6b73d5e33c1d646ca3f37be1e0cc74f35e85b4ca2e9c
@@ -88,7 +88,8 @@ jasmineRequire.HtmlReporter = function(j$) {
88
88
  results = [],
89
89
  htmlReporterMain,
90
90
  symbols,
91
- failedSuites = [];
91
+ failedSuites = [],
92
+ deprecationWarnings = [];
92
93
 
93
94
  this.initialize = function() {
94
95
  clearPrior();
@@ -126,6 +127,7 @@ jasmineRequire.HtmlReporter = function(j$) {
126
127
  }
127
128
 
128
129
  stateBuilder.suiteDone(result);
130
+ addDeprecationWarnings(result);
129
131
  };
130
132
 
131
133
  this.specStarted = function(result) {
@@ -169,6 +171,8 @@ jasmineRequire.HtmlReporter = function(j$) {
169
171
 
170
172
  failures.push(failure);
171
173
  }
174
+
175
+ addDeprecationWarnings(result);
172
176
  };
173
177
 
174
178
  this.jasmineDone = function(doneResult) {
@@ -278,6 +282,14 @@ jasmineRequire.HtmlReporter = function(j$) {
278
282
  alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failure.message));
279
283
  }
280
284
 
285
+ addDeprecationWarnings(doneResult);
286
+
287
+ var warningBarClassName = 'jasmine-bar jasmine-warning';
288
+ for(i = 0; i < deprecationWarnings.length; i++) {
289
+ var warning = deprecationWarnings[i];
290
+ alert.appendChild(createDom('span', {className: warningBarClassName}, 'DEPRECATION: ' + warning));
291
+ }
292
+
281
293
  var results = find('.jasmine-results');
282
294
  results.appendChild(summary);
283
295
 
@@ -352,6 +364,17 @@ jasmineRequire.HtmlReporter = function(j$) {
352
364
 
353
365
  return this;
354
366
 
367
+ function addDeprecationWarnings(result) {
368
+ if (result && result.deprecationWarnings) {
369
+ for(var i = 0; i < result.deprecationWarnings.length; i++) {
370
+ var warning = result.deprecationWarnings[i].message;
371
+ if (!j$.util.arrayContains(warning)) {
372
+ deprecationWarnings.push(warning);
373
+ }
374
+ }
375
+ }
376
+ }
377
+
355
378
  function find(selector) {
356
379
  return getContainer().querySelector('.jasmine_html-reporter ' + selector);
357
380
  }
@@ -33,6 +33,7 @@ body { overflow-y: scroll; }
33
33
  .jasmine_html-reporter .jasmine-bar.jasmine-passed { background-color: #007069; }
34
34
  .jasmine_html-reporter .jasmine-bar.jasmine-skipped { background-color: #bababa; }
35
35
  .jasmine_html-reporter .jasmine-bar.jasmine-errored { background-color: #ca3a11; }
36
+ .jasmine_html-reporter .jasmine-bar.jasmine-warning { background-color: #ba9d37; color: #333; }
36
37
  .jasmine_html-reporter .jasmine-bar.jasmine-menu { background-color: #fff; color: #aaa; }
37
38
  .jasmine_html-reporter .jasmine-bar.jasmine-menu a { color: #333; }
38
39
  .jasmine_html-reporter .jasmine-bar a { color: white; }
@@ -505,6 +505,7 @@ getJasmineRequireObj().Spec = function(j$) {
505
505
  * @property {String} fullName - The full description including all ancestors of this spec.
506
506
  * @property {Expectation[]} failedExpectations - The list of expectations that failed during execution of this spec.
507
507
  * @property {Expectation[]} passedExpectations - The list of expectations that passed during execution of this spec.
508
+ * @property {Expectation[]} deprecationWarnings - The list of deprecation warnings that occurred during execution this spec.
508
509
  * @property {String} pendingReason - If the spec is {@link pending}, this will be the reason.
509
510
  * @property {String} status - Once the spec has completed, this string represents the pass/fail status of this spec.
510
511
  */
@@ -514,6 +515,7 @@ getJasmineRequireObj().Spec = function(j$) {
514
515
  fullName: this.getFullName(),
515
516
  failedExpectations: [],
516
517
  passedExpectations: [],
518
+ deprecationWarnings: [],
517
519
  pendingReason: ''
518
520
  };
519
521
  }
@@ -629,6 +631,10 @@ getJasmineRequireObj().Spec = function(j$) {
629
631
  return this.getSpecName(this);
630
632
  };
631
633
 
634
+ Spec.prototype.addDeprecationWarning = function(msg) {
635
+ this.result.deprecationWarnings.push(this.expectationResultFactory({ message: msg }));
636
+ };
637
+
632
638
  var extractCustomPendingMessage = function(e) {
633
639
  var fullMessage = e.toString(),
634
640
  boilerplateStart = fullMessage.indexOf(Spec.pendingSpecExceptionMessage),
@@ -710,6 +716,8 @@ getJasmineRequireObj().Env = function(j$) {
710
716
  var self = this;
711
717
  var global = options.global || j$.getGlobal();
712
718
 
719
+ var hasExecuted = false;
720
+
713
721
  var totalSpecsDefined = 0;
714
722
 
715
723
  var catchExceptions = true;
@@ -895,6 +903,7 @@ getJasmineRequireObj().Env = function(j$) {
895
903
 
896
904
  // TODO: fix this naming, and here's where the value comes in
897
905
  this.catchExceptions = function(value) {
906
+ this.deprecated('The catchExceptions option is deprecated and will be replaced with stopOnSpecFailure in Jasmine 3.0');
898
907
  catchExceptions = !!value;
899
908
  return catchExceptions;
900
909
  };
@@ -933,6 +942,14 @@ getJasmineRequireObj().Env = function(j$) {
933
942
  return seed;
934
943
  };
935
944
 
945
+ this.deprecated = function(msg) {
946
+ var runnable = currentRunnable() || topSuite;
947
+ runnable.addDeprecationWarning(msg);
948
+ if(typeof console !== 'undefined' && typeof console.warn !== 'undefined') {
949
+ console.error('DEPRECATION: ' + msg);
950
+ }
951
+ };
952
+
936
953
  var queueRunnerFactory = function(options) {
937
954
  options.catchException = catchException;
938
955
  options.clearStack = options.clearStack || clearStack;
@@ -940,6 +957,7 @@ getJasmineRequireObj().Env = function(j$) {
940
957
  options.fail = self.fail;
941
958
  options.globalErrors = globalErrors;
942
959
  options.completeOnFirstError = throwOnExpectationFailure && options.isLeaf;
960
+ options.deprecated = self.deprecated;
943
961
 
944
962
  new j$.QueueRunner(options).execute();
945
963
  };
@@ -959,6 +977,12 @@ getJasmineRequireObj().Env = function(j$) {
959
977
  };
960
978
 
961
979
  this.execute = function(runnablesToRun) {
980
+ if (hasExecuted) {
981
+ this.deprecated('Executing the same Jasmine multiple times will no longer work in Jasmine 3.0');
982
+ }
983
+
984
+ hasExecuted = true;
985
+
962
986
  if(!runnablesToRun) {
963
987
  if (focusedRunnables.length) {
964
988
  runnablesToRun = focusedRunnables;
@@ -1025,10 +1049,12 @@ getJasmineRequireObj().Env = function(j$) {
1025
1049
  * @typedef JasmineDoneInfo
1026
1050
  * @property {Order} order - Information about the ordering (random or not) of this execution of the suite.
1027
1051
  * @property {Expectation[]} failedExpectations - List of expectations that failed in an {@link afterAll} at the global level.
1052
+ * @property {Expectation[]} deprecationWarnings - List of deprecation warnings that occurred at the global level.
1028
1053
  */
1029
1054
  reporter.jasmineDone({
1030
1055
  order: order,
1031
- failedExpectations: topSuite.result.failedExpectations
1056
+ failedExpectations: topSuite.result.failedExpectations,
1057
+ deprecationWarnings: topSuite.result.deprecationWarnings
1032
1058
  });
1033
1059
  });
1034
1060
  };
@@ -1130,6 +1156,7 @@ getJasmineRequireObj().Env = function(j$) {
1130
1156
  var focusedRunnables = [];
1131
1157
 
1132
1158
  this.fdescribe = function(description, specDefinitions) {
1159
+ this.deprecated('fit and fdescribe will cause your suite to report an \'incomplete\' status in Jasmine 3.0');
1133
1160
  ensureIsNotNested('fdescribe');
1134
1161
  ensureIsFunction(specDefinitions, 'fdescribe');
1135
1162
  var suite = suiteFactory(description);
@@ -1255,6 +1282,7 @@ getJasmineRequireObj().Env = function(j$) {
1255
1282
  };
1256
1283
 
1257
1284
  this.fit = function(description, fn, timeout){
1285
+ this.deprecated('fit and fdescribe will cause your suite to report an \'incomplete\' status in Jasmine 3.0');
1258
1286
  ensureIsNotNested('fit');
1259
1287
  ensureIsFunctionOrAsync(fn, 'fit');
1260
1288
  var spec = specFactory(description, fn, currentDeclarationSuite, timeout);
@@ -1510,6 +1538,9 @@ getJasmineRequireObj().Any = function(j$) {
1510
1538
  }
1511
1539
 
1512
1540
  if (this.expectedObject == Object) {
1541
+ if (other === null) {
1542
+ j$.getEnv().deprecated('jasmine.Any(Object) will no longer match null in Jasmine 3.0');
1543
+ }
1513
1544
  return typeof other == 'object';
1514
1545
  }
1515
1546
 
@@ -4320,7 +4351,7 @@ getJasmineRequireObj().QueueRunner = function(j$) {
4320
4351
  return function() {
4321
4352
  if (!called) {
4322
4353
  called = true;
4323
- fn();
4354
+ fn.apply(null, arguments);
4324
4355
  }
4325
4356
  return null;
4326
4357
  };
@@ -4339,6 +4370,7 @@ getJasmineRequireObj().QueueRunner = function(j$) {
4339
4370
  this.fail = attrs.fail || function() {};
4340
4371
  this.globalErrors = attrs.globalErrors || { pushListener: function() {}, popListener: function() {} };
4341
4372
  this.completeOnFirstError = !!attrs.completeOnFirstError;
4373
+ this.deprecated = attrs.deprecated;
4342
4374
  }
4343
4375
 
4344
4376
  QueueRunner.prototype.execute = function() {
@@ -4398,9 +4430,13 @@ getJasmineRequireObj().QueueRunner = function(j$) {
4398
4430
  clearTimeout(timeoutId);
4399
4431
  self.globalErrors.popListener(handleError);
4400
4432
  }),
4401
- next = once(function () {
4433
+ next = once(function (err) {
4402
4434
  cleanup();
4403
4435
 
4436
+ if (err instanceof Error) {
4437
+ self.deprecated('done callback received an Error object. Jasmine 3.0 will treat this as a failure');
4438
+ }
4439
+
4404
4440
  function runNext() {
4405
4441
  if (self.completeOnFirstError && errored) {
4406
4442
  self.skipToCleanup(iterativeIndex);
@@ -5147,13 +5183,15 @@ getJasmineRequireObj().Suite = function(j$) {
5147
5183
  * @property {String} description - The description text passed to the {@link describe} that made this suite.
5148
5184
  * @property {String} fullName - The full description including all ancestors of this suite.
5149
5185
  * @property {Expectation[]} failedExpectations - The list of expectations that failed in an {@link afterAll} for this suite.
5186
+ * @property {Expectation[]} deprecationWarnings - The list of deprecation warnings that occurred on this suite.
5150
5187
  * @property {String} status - Once the suite has completed, this string represents the pass/fail status of this suite.
5151
5188
  */
5152
5189
  this.result = {
5153
5190
  id: this.id,
5154
5191
  description: this.description,
5155
5192
  fullName: this.getFullName(),
5156
- failedExpectations: []
5193
+ failedExpectations: [],
5194
+ deprecationWarnings: []
5157
5195
  };
5158
5196
  }
5159
5197
 
@@ -5273,6 +5311,10 @@ getJasmineRequireObj().Suite = function(j$) {
5273
5311
  }
5274
5312
  };
5275
5313
 
5314
+ Suite.prototype.addDeprecationWarning = function(msg) {
5315
+ this.result.deprecationWarnings.push(this.expectationResultFactory({ message: msg }));
5316
+ };
5317
+
5276
5318
  function isAfterAll(children) {
5277
5319
  return children && children[0].result.status;
5278
5320
  }
@@ -5538,5 +5580,5 @@ getJasmineRequireObj().UserContext = function(j$) {
5538
5580
  };
5539
5581
 
5540
5582
  getJasmineRequireObj().version = function() {
5541
- return '2.9.1';
5583
+ return '2.99.0';
5542
5584
  };
@@ -222,6 +222,7 @@ describe("Spec", function() {
222
222
  fullName: 'a suite with a spec',
223
223
  failedExpectations: [],
224
224
  passedExpectations: [],
225
+ deprecationWarnings: [],
225
226
  pendingReason: ''
226
227
  });
227
228
  });
@@ -2004,4 +2004,47 @@ describe("Env integration", function() {
2004
2004
 
2005
2005
  env.execute();
2006
2006
  });
2007
+
2008
+ it('should report deprecation warnings on the correct specs and suites', function(done) {
2009
+ var env = new jasmineUnderTest.Env(),
2010
+ reporter = jasmine.createSpyObj('reporter', ['jasmineDone', 'suiteDone', 'specDone']);
2011
+
2012
+ reporter.jasmineDone.and.callFake(function(result) {
2013
+ expect(result.deprecationWarnings).toEqual([
2014
+ jasmine.objectContaining({ message: 'top level deprecation' })
2015
+ ]);
2016
+
2017
+ expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({
2018
+ fullName: 'suite',
2019
+ deprecationWarnings: [
2020
+ jasmine.objectContaining({ message: 'suite level deprecation' })
2021
+ ]
2022
+ }));
2023
+
2024
+ expect(reporter.specDone).toHaveBeenCalledWith(jasmine.objectContaining({
2025
+ fullName: 'suite spec',
2026
+ deprecationWarnings: [
2027
+ jasmine.objectContaining({ message: 'spec level deprecation' })
2028
+ ]
2029
+ }));
2030
+
2031
+ done();
2032
+ });
2033
+
2034
+ env.addReporter(reporter);
2035
+
2036
+ env.deprecated('top level deprecation');
2037
+
2038
+ env.describe('suite', function() {
2039
+ env.beforeAll(function() {
2040
+ env.deprecated('suite level deprecation');
2041
+ });
2042
+
2043
+ env.it('spec', function() {
2044
+ env.deprecated('spec level deprecation');
2045
+ });
2046
+ });
2047
+
2048
+ env.execute();
2049
+ });
2007
2050
  });
@@ -208,6 +208,47 @@ describe("New HtmlReporter", function() {
208
208
  });
209
209
  });
210
210
 
211
+ describe('when there are deprecation warnings', function() {
212
+ it('displays the messages in their own alert bars', function() {
213
+ var env = new jasmineUnderTest.Env(),
214
+ container = document.createElement('div'),
215
+ getContainer = function() { return container; },
216
+ reporter = new jasmineUnderTest.HtmlReporter({
217
+ env: env,
218
+ getContainer: getContainer,
219
+ createElement: function() { return document.createElement.apply(document, arguments); },
220
+ createTextNode: function() { return document.createTextNode.apply(document, arguments); }
221
+ });
222
+
223
+ reporter.initialize();
224
+
225
+ reporter.jasmineStarted({});
226
+ reporter.specDone({
227
+ status: 'passed',
228
+ deprecationWarnings: [{ message: 'spec deprecation' }],
229
+ failedExpectations: [],
230
+ passedExpectations: []
231
+ });
232
+ reporter.suiteDone({
233
+ status: 'passed',
234
+ deprecationWarnings: [{ message: 'suite deprecation' }],
235
+ failedExpectations: []
236
+ });
237
+ reporter.jasmineDone({
238
+ deprecationWarnings: [{ message: 'global deprecation' }],
239
+ failedExpectations: []
240
+ });
241
+
242
+ var alertBars = container.querySelectorAll(".jasmine-alert .jasmine-bar");
243
+
244
+ expect(alertBars.length).toEqual(4);
245
+ expect(alertBars[1].innerHTML).toMatch(/spec deprecation/);
246
+ expect(alertBars[1].getAttribute("class")).toEqual('jasmine-bar jasmine-warning');
247
+ expect(alertBars[2].innerHTML).toMatch(/suite deprecation/);
248
+ expect(alertBars[3].innerHTML).toMatch(/global deprecation/);
249
+ });
250
+ });
251
+
211
252
  describe("when Jasmine is done", function() {
212
253
  it("adds a warning to the link title of specs that have no expectations", function() {
213
254
  if (!window.console) {
@@ -4,6 +4,6 @@
4
4
  #
5
5
  module Jasmine
6
6
  module Core
7
- VERSION = "2.9.1"
7
+ VERSION = "2.99.0"
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.1
4
+ version: 2.99.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Van Hove
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-20 00:00:00.000000000 Z
11
+ date: 2018-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake