-
Notifications
You must be signed in to change notification settings - Fork 781
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tests: Clean up hierarchy of our own test modules
Our internal tests mostly predate support for nested modules so that's why these are mostly flat and messy. Re-structure them so that related tests are under the same module. This makes it easier to scan the results and to re-run tests in a given file. Also: * Use assert.test instead of QUnit.config.current where possible. * Remove redundant use of assert.expect() from most tests. * Remove some duplicate tests. * Clarify local name in setTimeout.js as globalThis instead of window, since the test is used in Node.js as well. Ref #1511.
- Loading branch information
Showing
17 changed files
with
1,128 additions
and
1,255 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,161 +1,152 @@ | ||
QUnit.module( "assert.step" ); | ||
QUnit.module( "assert.step", function() { | ||
|
||
QUnit.test( "pushes a failing assertion if no message is given", function( assert ) { | ||
assert.expect( 3 ); | ||
QUnit.test( "pushes a failing assertion if no message is given", function( assert ) { | ||
var originalPushResult = assert.pushResult; | ||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
|
||
var originalPushResult = assert.pushResult; | ||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
|
||
assert.false( resultInfo.result ); | ||
assert.equal( resultInfo.message, "You must provide a message to assert.step" ); | ||
}; | ||
|
||
assert.step(); | ||
|
||
assert.verifySteps( [ undefined ] ); | ||
} ); | ||
|
||
QUnit.test( "pushes a failing assertion if empty message is given", function( assert ) { | ||
assert.expect( 3 ); | ||
|
||
var originalPushResult = assert.pushResult; | ||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
|
||
assert.false( resultInfo.result ); | ||
assert.equal( resultInfo.message, "You must provide a message to assert.step" ); | ||
}; | ||
assert.false( resultInfo.result ); | ||
assert.equal( resultInfo.message, "You must provide a message to assert.step" ); | ||
}; | ||
|
||
assert.step( "" ); | ||
|
||
assert.verifySteps( [ "" ] ); | ||
} ); | ||
|
||
QUnit.test( "pushes a failing assertion if a non string message is given", function( assert ) { | ||
assert.expect( 7 ); | ||
assert.step(); | ||
assert.verifySteps( [ undefined ] ); | ||
} ); | ||
|
||
var count = 0; | ||
var originalPushResult = assert.pushResult; | ||
QUnit.test( "pushes a failing assertion if empty message is given", function( assert ) { | ||
var originalPushResult = assert.pushResult; | ||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
|
||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
assert.false( resultInfo.result ); | ||
assert.equal( resultInfo.message, "You must provide a message to assert.step" ); | ||
}; | ||
|
||
count += 1; | ||
assert.step( "" ); | ||
assert.verifySteps( [ "" ] ); | ||
} ); | ||
|
||
assert.false( resultInfo.result ); | ||
assert.equal( resultInfo.message, "You must provide a string value to assert.step" ); | ||
QUnit.test( "pushes a failing assertion if a non string message is given", function( assert ) { | ||
var count = 0; | ||
var originalPushResult = assert.pushResult; | ||
|
||
if ( count < 3 ) { | ||
assert.pushResult = pushResultStub; | ||
} | ||
}; | ||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
|
||
assert.step( 1 ); | ||
assert.step( null ); | ||
assert.step( false ); | ||
count += 1; | ||
|
||
assert.verifySteps( [ 1, null, false ] ); | ||
} ); | ||
assert.false( resultInfo.result ); | ||
assert.equal( resultInfo.message, "You must provide a string value to assert.step" ); | ||
|
||
QUnit.test( "pushes a passing assertion if a message is given", function( assert ) { | ||
assert.expect( 3 ); | ||
if ( count < 3 ) { | ||
assert.pushResult = pushResultStub; | ||
} | ||
}; | ||
|
||
assert.step( "One step" ); | ||
assert.step( "Two step" ); | ||
assert.step( 1 ); | ||
assert.step( null ); | ||
assert.step( false ); | ||
|
||
assert.verifySteps( [ "One step", "Two step" ] ); | ||
} ); | ||
assert.verifySteps( [ 1, null, false ] ); | ||
} ); | ||
|
||
QUnit.module( "assert.verifySteps" ); | ||
QUnit.test( "pushes a passing assertion if a message is given", function( assert ) { | ||
assert.step( "One step" ); | ||
assert.step( "Two step" ); | ||
|
||
QUnit.test( "verifies the order and value of steps", function( assert ) { | ||
assert.expect( 10 ); | ||
assert.verifySteps( [ "One step", "Two step" ] ); | ||
} ); | ||
|
||
assert.step( "One step" ); | ||
assert.step( "Two step" ); | ||
assert.step( "Red step" ); | ||
assert.step( "Blue step" ); | ||
QUnit.test( "step() and verifySteps() count as assertions", function( assert ) { | ||
assert.expect( 3 ); | ||
|
||
assert.verifySteps( [ "One step", "Two step", "Red step", "Blue step" ] ); | ||
assert.step( "One" ); | ||
assert.step( "Two" ); | ||
|
||
assert.step( "One step" ); | ||
assert.step( "Two step" ); | ||
assert.step( "Red step" ); | ||
assert.step( "Blue step" ); | ||
assert.verifySteps( [ "One", "Two" ], "Three" ); | ||
} ); | ||
|
||
var originalPushResult = assert.pushResult; | ||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
QUnit.module( "assert.verifySteps" ); | ||
|
||
assert.false( resultInfo.result ); | ||
}; | ||
QUnit.test( "verifies the order and value of steps", function( assert ) { | ||
assert.step( "One step" ); | ||
assert.step( "Two step" ); | ||
assert.step( "Red step" ); | ||
assert.step( "Blue step" ); | ||
|
||
assert.verifySteps( [ "One step", "Red step", "Two step", "Blue step" ] ); | ||
} ); | ||
assert.verifySteps( [ "One step", "Two step", "Red step", "Blue step" ] ); | ||
|
||
QUnit.test( "verifies the order and value of failed steps", function( assert ) { | ||
assert.expect( 3 ); | ||
assert.step( "One step" ); | ||
assert.step( "Two step" ); | ||
assert.step( "Red step" ); | ||
assert.step( "Blue step" ); | ||
|
||
var originalPushResult = assert.pushResult; | ||
var originalPushResult = assert.pushResult; | ||
assert.pushResult = function pushResultStub( resultInfo ) { | ||
assert.pushResult = originalPushResult; | ||
|
||
assert.step( "One step" ); | ||
assert.false( resultInfo.result ); | ||
}; | ||
|
||
assert.pushResult = function noop() {}; | ||
assert.step(); | ||
assert.step( "" ); | ||
assert.pushResult = originalPushResult; | ||
assert.verifySteps( [ "One step", "Red step", "Two step", "Blue step" ] ); | ||
} ); | ||
|
||
assert.step( "Two step" ); | ||
QUnit.test( "verifies the order and value of failed steps", function( assert ) { | ||
var originalPushResult = assert.pushResult; | ||
|
||
assert.verifySteps( [ "One step", undefined, "", "Two step" ] ); | ||
} ); | ||
assert.step( "One step" ); | ||
|
||
QUnit.test( "resets the step list after verification", function( assert ) { | ||
assert.expect( 4 ); | ||
assert.pushResult = function noop() {}; | ||
assert.step(); | ||
assert.step( "" ); | ||
assert.pushResult = originalPushResult; | ||
|
||
assert.step( "one" ); | ||
assert.verifySteps( [ "one" ] ); | ||
assert.step( "Two step" ); | ||
|
||
assert.step( "two" ); | ||
assert.verifySteps( [ "two" ] ); | ||
} ); | ||
assert.verifySteps( [ "One step", undefined, "", "Two step" ] ); | ||
} ); | ||
|
||
QUnit.test( "errors if not called when `assert.step` is used", function( assert ) { | ||
assert.expect( 2 ); | ||
assert.step( "one" ); | ||
QUnit.test( "resets the step list after verification", function( assert ) { | ||
assert.step( "one" ); | ||
assert.verifySteps( [ "one" ] ); | ||
|
||
var originalPushFailure = QUnit.config.current.pushFailure; | ||
QUnit.config.current.pushFailure = function pushFailureStub( message ) { | ||
QUnit.config.current.pushFailure = originalPushFailure; | ||
assert.step( "two" ); | ||
assert.verifySteps( [ "two" ] ); | ||
} ); | ||
|
||
assert.equal( message, "Expected assert.verifySteps() to be called before end of test after using assert.step(). Unverified steps: one" ); | ||
}; | ||
} ); | ||
QUnit.test( "errors if not called when `assert.step` is used", function( assert ) { | ||
assert.expect( 2 ); | ||
assert.step( "one" ); | ||
|
||
// Testing to ensure steps array is not passed by reference: https://github.com/qunitjs/qunit/issues/1266 | ||
QUnit.module( "assert.verifySteps value reference", function() { | ||
var original = assert.test.pushFailure; | ||
assert.test.pushFailure = function( message ) { | ||
assert.test.pushFailure = original; | ||
|
||
var loggedAssertions = {}; | ||
assert.equal( message, "Expected assert.verifySteps() to be called before end of test after using assert.step(). Unverified steps: one" ); | ||
}; | ||
} ); | ||
|
||
QUnit.log( function( details ) { | ||
// Testing to ensure steps array is not passed by reference: https://github.com/qunitjs/qunit/issues/1266 | ||
QUnit.module( "assert.verifySteps value reference", function() { | ||
|
||
if ( details.message === "verification-assertion" ) { | ||
loggedAssertions[ details.message ] = details; | ||
} | ||
var loggedAssertions = {}; | ||
|
||
} ); | ||
QUnit.log( function( details ) { | ||
if ( details.message === "verification-assertion" ) { | ||
loggedAssertions[ details.message ] = details; | ||
} | ||
} ); | ||
|
||
QUnit.test( "passing test to see if steps array is passed by reference to logging function", function( assert ) { | ||
assert.step( "step one" ); | ||
assert.step( "step two" ); | ||
QUnit.test( "passing test to see if steps array is passed by reference to logging function", function( assert ) { | ||
assert.step( "step one" ); | ||
assert.step( "step two" ); | ||
|
||
assert.verifySteps( [ "step one", "step two" ], "verification-assertion" ); | ||
} ); | ||
assert.verifySteps( [ "step one", "step two" ], "verification-assertion" ); | ||
} ); | ||
|
||
QUnit.test( "steps array should not be reset in logging function", function( assert ) { | ||
var result = loggedAssertions[ "verification-assertion" ].actual; | ||
assert.deepEqual( result, [ "step one", "step two" ] ); | ||
QUnit.test( "steps array should not be reset in logging function", function( assert ) { | ||
var result = loggedAssertions[ "verification-assertion" ].actual; | ||
assert.deepEqual( result, [ "step one", "step two" ] ); | ||
} ); | ||
} ); | ||
|
||
} ); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.