dwf/rva: async working with .waits() syntax; simple case
This commit is contained in:
parent
a4979fe851
commit
3e02023d9f
20
jasmine.iws
20
jasmine.iws
|
@ -83,7 +83,7 @@
|
||||||
<state />
|
<state />
|
||||||
</provider>
|
</provider>
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="19" column="20" selection-start="652" selection-end="652" vertical-scroll-proportion="0.37063655">
|
<state line="15" column="26" selection-start="541" selection-end="541" vertical-scroll-proportion="0.2926078">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
<file leaf-file-name="bootstrap.js" pinned="false" current="true" current-in-tab="true">
|
<file leaf-file-name="bootstrap.js" pinned="false" current="true" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/test/bootstrap.js">
|
<entry file="file://$PROJECT_DIR$/test/bootstrap.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="171" column="38" selection-start="4839" selection-end="4839" vertical-scroll-proportion="0.7267498">
|
<state line="54" column="17" selection-start="1594" selection-end="1594" vertical-scroll-proportion="0.46705997">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
@ -101,7 +101,7 @@
|
||||||
<file leaf-file-name="test.css" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="test.css" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/test/test.css">
|
<entry file="file://$PROJECT_DIR$/test/test.css">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
<state line="5" column="0" selection-start="118" selection-end="118" vertical-scroll-proportion="0.091083415">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
<file leaf-file-name="jasmine.js" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="jasmine.js" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/lib/jasmine.js">
|
<entry file="file://$PROJECT_DIR$/lib/jasmine.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="80" column="6" selection-start="1900" selection-end="1900" vertical-scroll-proportion="0.27918288">
|
<state line="100" column="0" selection-start="2241" selection-end="2241" vertical-scroll-proportion="0.53793776">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
@ -515,9 +515,9 @@
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/test/test.css">
|
<entry file="file://$PROJECT_DIR$/lib/jasmine.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
<state line="100" column="0" selection-start="2241" selection-end="2241" vertical-scroll-proportion="0.53793776">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
@ -527,21 +527,21 @@
|
||||||
<state />
|
<state />
|
||||||
</provider>
|
</provider>
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="19" column="20" selection-start="652" selection-end="652" vertical-scroll-proportion="0.37063655">
|
<state line="15" column="26" selection-start="541" selection-end="541" vertical-scroll-proportion="0.2926078">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/lib/jasmine.js">
|
<entry file="file://$PROJECT_DIR$/test/test.css">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="80" column="6" selection-start="1900" selection-end="1900" vertical-scroll-proportion="0.27918288">
|
<state line="5" column="0" selection-start="118" selection-end="118" vertical-scroll-proportion="0.091083415">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/test/bootstrap.js">
|
<entry file="file://$PROJECT_DIR$/test/bootstrap.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="171" column="38" selection-start="4839" selection-end="4839" vertical-scroll-proportion="0.7267498">
|
<state line="54" column="17" selection-start="1594" selection-end="1594" vertical-scroll-proportion="0.46705997">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
|
@ -3,9 +3,10 @@
|
||||||
// Object.create instead of new Object
|
// Object.create instead of new Object
|
||||||
if (typeof Object.create !== 'function') {
|
if (typeof Object.create !== 'function') {
|
||||||
Object.create = function (o) {
|
Object.create = function (o) {
|
||||||
var F = function () {};
|
var F = function () {
|
||||||
F.prototype = o;
|
};
|
||||||
return new F();
|
F.prototype = o;
|
||||||
|
return new F();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,13 +42,13 @@ Matchers.method('report', function (result, failing_message) {
|
||||||
|
|
||||||
Matchers.method('should_equal', function (expected) {
|
Matchers.method('should_equal', function (expected) {
|
||||||
return this.report((this.actual === expected),
|
return this.report((this.actual === expected),
|
||||||
'Expected ' + expected + ' but got ' + this.actual + '.');
|
'Expected ' + expected + ' but got ' + this.actual + '.');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Matchers.method('should_not_equal', function (expected) {
|
Matchers.method('should_not_equal', function (expected) {
|
||||||
return this.report((this.actual !== expected),
|
return this.report((this.actual !== expected),
|
||||||
'Expected ' + expected + ' to not equal ' + this.actual + ', but it does.');
|
'Expected ' + expected + ' to not equal ' + this.actual + ', but it does.');
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -72,24 +73,58 @@ var it = function (description, func) {
|
||||||
return that;
|
return that;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var queuedFunction = function(func, timeout, spec) {
|
||||||
|
var that = {
|
||||||
|
func: func,
|
||||||
|
next: function () {spec.finish()},
|
||||||
|
execute: function () {
|
||||||
|
if (timeout > 0) {
|
||||||
|
setTimeout(function () {
|
||||||
|
that.func();
|
||||||
|
that.next();
|
||||||
|
}, timeout);
|
||||||
|
} else {
|
||||||
|
that.func();
|
||||||
|
that.next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return that;
|
||||||
|
}
|
||||||
|
|
||||||
var it_async = function (description) {
|
var it_async = function (description) {
|
||||||
var that = {
|
var that = {
|
||||||
description: description,
|
description: description,
|
||||||
queue: [],
|
queue: [],
|
||||||
|
currentTimeout: 0,
|
||||||
waits: function (timeout) {
|
waits: function (timeout) {
|
||||||
|
that.currentTimeout = timeout;
|
||||||
return that;
|
return that;
|
||||||
},
|
},
|
||||||
|
resetTimeout: function() {
|
||||||
|
that.currentTimeout = 0;
|
||||||
|
},
|
||||||
|
finish: function() {
|
||||||
|
that.done = true;
|
||||||
|
},
|
||||||
done: false,
|
done: false,
|
||||||
execute: function () {
|
execute: function () {
|
||||||
for(i = 0; i < that.queue.length; i++) {
|
if (that.queue[0]) {
|
||||||
that.queue[i]();
|
that.queue[0].execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
};
|
|
||||||
|
|
||||||
var addToQueue = function(func) {
|
var addToQueue = function(func) {
|
||||||
that.queue.push(func);
|
currentFunction = queuedFunction(func, that.currentTimeout, that);
|
||||||
|
that.queue.push(currentFunction);
|
||||||
|
if (that.previousFunction) {
|
||||||
|
that.previousFunction.next = function () {
|
||||||
|
currentFunction.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
that.resetTimeout();
|
||||||
|
that.previousFunction = currentFunction;
|
||||||
return that;
|
return that;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
<h1>
|
<h1>
|
||||||
Running all Jasmine Test Suites
|
Running all Jasmine Test Suites
|
||||||
</h1>
|
</h1>
|
||||||
<div id="icons">
|
<div id="icon_wrapper">
|
||||||
|
<span id="icons"></span>
|
||||||
<img id="spinner" src="spinner.gif" alt="" />
|
<img id="spinner" src="spinner.gif" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<div id="report">
|
<div id="report">
|
||||||
|
|
|
@ -151,46 +151,50 @@ var testAsyncSpecs = function () {
|
||||||
runs(function () {
|
runs(function () {
|
||||||
foo++;
|
foo++;
|
||||||
}).then(function() {
|
}).then(function() {
|
||||||
expects_that(foo).should_equal(1)
|
|
||||||
});
|
|
||||||
|
|
||||||
a_spec.execute();
|
|
||||||
|
|
||||||
reporter.test((Jasmine.results.length === 1),
|
|
||||||
'Spec queue did not run all functions');
|
|
||||||
reporter.test((Jasmine.results[0].passed === true),
|
|
||||||
'Queued expectation failed');
|
|
||||||
|
|
||||||
Jasmine = jasmine_init();
|
|
||||||
foo = 0;
|
|
||||||
a_spec = it_async('spec w/ queued statments').
|
|
||||||
runs(function () {
|
|
||||||
setTimeout(function() {
|
|
||||||
foo++
|
|
||||||
}, 500);
|
|
||||||
}).waits(1000).then(function() {
|
|
||||||
expects_that(foo).should_equal(1);
|
expects_that(foo).should_equal(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
a_spec.execute();
|
a_spec.execute();
|
||||||
|
|
||||||
reporter.test((Jasmine.results.length === 1),
|
reporter.test((Jasmine.results.length === 1),
|
||||||
'Spec queue did not run all functions');
|
'No call to waits(): Spec queue did not run all functions');
|
||||||
|
|
||||||
reporter.test((Jasmine.results[0].passed === true),
|
reporter.test((Jasmine.results[0].passed === true),
|
||||||
'Queued expectation failed');
|
'No call to waits(): Queued expectation failed');
|
||||||
|
|
||||||
|
Jasmine = jasmine_init();
|
||||||
|
foo = 0;
|
||||||
|
a_spec = it_async('spec w/ queued statments').
|
||||||
|
runs(function () {
|
||||||
|
setTimeout(function() {
|
||||||
|
foo++
|
||||||
|
}, 500);
|
||||||
|
}).waits(1000).
|
||||||
|
then(function() {
|
||||||
|
expects_that(foo).should_equal(1);
|
||||||
|
});
|
||||||
|
|
||||||
|
a_spec.execute();
|
||||||
|
setTimeout(function(){
|
||||||
|
reporter.test((Jasmine.results.length === 1),
|
||||||
|
'Calling waits(): Spec queue did not run all functions');
|
||||||
|
|
||||||
|
reporter.test((Jasmine.results[0].passed === true),
|
||||||
|
'Calling waits(): Queued expectation failed');
|
||||||
|
}, 1250);
|
||||||
}
|
}
|
||||||
|
|
||||||
var runTests = function () {
|
var runTests = function () {
|
||||||
$('spinner').show();
|
$('spinner').show();
|
||||||
|
|
||||||
// testMatchersComparisons();
|
testMatchersComparisons();
|
||||||
// testMatchersReporting();
|
testMatchersReporting();
|
||||||
// testSpecs();
|
testSpecs();
|
||||||
|
|
||||||
testAsyncSpecs();
|
testAsyncSpecs();
|
||||||
$('spinner').hide();
|
|
||||||
reporter.summary();
|
setTimeout(function() {
|
||||||
|
$('spinner').hide();
|
||||||
|
reporter.summary();
|
||||||
|
}, 1500);
|
||||||
}
|
}
|
||||||
|
|
||||||
//it('should be an async test') {
|
//it('should be an async test') {
|
||||||
|
|
|
@ -3,10 +3,6 @@ body {
|
||||||
padding-left: 40px;
|
padding-left: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
img#spinner {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
Loading…
Reference in New Issue