Skip to content

Commit

Permalink
Converting jsunit asserts to chai. (google#3831)
Browse files Browse the repository at this point in the history
* Converting jsunit asserts to chai.

* Move jsunit functions to test_utilities.

* Adding eslint exception for helper method.
  • Loading branch information
Monica Kozbial committed Apr 17, 2020
1 parent cfa198c commit 0adf7ef
Show file tree
Hide file tree
Showing 32 changed files with 741 additions and 744 deletions.
121 changes: 121 additions & 0 deletions tests/jsunit/test_utilities.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,3 +158,124 @@ function captureWarnings(innerFunc) {
}
return msgs;
}

function _argumentsIncludeComments(expectedNumberOfNonCommentArgs, args) {
return args.length == expectedNumberOfNonCommentArgs + 1;
}

function _commentArg(expectedNumberOfNonCommentArgs, args) {
if (_argumentsIncludeComments(expectedNumberOfNonCommentArgs, args)) {
return args[0];
}

return null;
}

function _nonCommentArg(desiredNonCommentArgIndex, expectedNumberOfNonCommentArgs, args) {
return _argumentsIncludeComments(expectedNumberOfNonCommentArgs, args) ?
args[desiredNonCommentArgIndex] :
args[desiredNonCommentArgIndex - 1];
}

function _validateArguments(expectedNumberOfNonCommentArgs, args) {
if (!( args.length == expectedNumberOfNonCommentArgs ||
(args.length == expectedNumberOfNonCommentArgs + 1 && (typeof(args[0]) == 'string') || args[0] == null))) {
throw Error('Incorrect arguments passed to assert function');
}
}
/**
* Converts from JSUnit assertEquals to chai.assert.equal.
*/
function assertEquals() {
_validateArguments(2, arguments);
var var1 = _nonCommentArg(1, 2, arguments);
var var2 = _nonCommentArg(2, 2, arguments);
var comment = _commentArg(2, arguments);
chai.assert.equal(var1, var2, comment);
}

/**
* Converts from JSUnit assertNotEquals to chai.assert.notEquals.
*/
function assertNotEquals() {
_validateArguments(2, arguments);
var var1 = _nonCommentArg(1, 2, arguments);
var var2 = _nonCommentArg(2, 2, arguments);
var comment = _commentArg(2, arguments);
chai.assert.notEqual(var1, var2, comment);
}

/**
* Converts from JSUnit assertTrue to chai.assert.isTrue.
*/
function assertTrue() {
_validateArguments(1, arguments);
var commentArg = _commentArg(1, arguments);
var booleanValue = _nonCommentArg(1, 1, arguments);
if (typeof(booleanValue) != 'boolean') {
throw Error('Bad argument to assertTrue(boolean)');
}

chai.assert.isTrue(booleanValue, commentArg);
}

/**
* Converts from JSUnit assertFalse to chai.assert.isNotTrue.
*/
function assertFalse() {
_validateArguments(1, arguments);
var commentArg = _commentArg(1, arguments);
var booleanValue = _nonCommentArg(1, 1, arguments);

if (typeof(booleanValue) != 'boolean') {
throw Error('Bad argument to assertFalse(boolean)');
}

chai.assert.isNotTrue(booleanValue, commentArg);
}

/**
* Converts from JSUnit assertNull to chai.assert.isNull.
*/
function assertNull() {
_validateArguments(1, arguments);
var commentArg = _commentArg(1, arguments);
var val = _nonCommentArg(1, 1, arguments);
chai.assert.isNull(val, commentArg);
}

function assertNotNull() {
_validateArguments(1, arguments);
var commentArg = _commentArg(1, arguments);
var val = _nonCommentArg(1, 1, arguments);
chai.assert.isNotNull(val, commentArg);
}

function assertNotNullNorUndefined() {
assertNotNull(arguments);
}

function assert() {
chai.assert(arguments);
}

function assertUndefined() {
_validateArguments(1, arguments);
var commentArg = _commentArg(1, arguments);
var val = _nonCommentArg(1, 1, arguments);
chai.assert.isUndefined(val, commentArg);
}

function assertNotUndefined() {
_validateArguments(1, arguments);
var commentArg = _commentArg(1, arguments);
var val = _nonCommentArg(1, 1, arguments);
chai.assert.isDefined(val, commentArg);
}

function assertArrayEquals() {
_validateArguments(2, arguments);
var var1 = _nonCommentArg(1, 2, arguments);
var var2 = _nonCommentArg(2, 2, arguments);
isEqualArrays(var1, var2);
}
16 changes: 3 additions & 13 deletions tests/mocha/.eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,12 @@
"globals": {
"chai": false,
"sinon": false,
"assert": true,
"assertArrayEquals": true,
"assertNull": true,
"assertNotNull": true,
"assertEquals": true,
"assertTrue": true,
"assertFalse": true,
"isEqualArrays": true,
"assertUndefined": true,
"assertNotUndefined": true,
"assertNotNullNorUndefined": true,
"assertVariableValues": true,
"defineStackBlock": true,
"createTestBlock": true,
"defineRowBlock": true,
"defineStatementBlock": true,
"createTestBlock": true
"defineStackBlock": true,
"defineStatementBlock": true
},
"extends": "../../.eslintrc.json"
}
Loading

0 comments on commit 0adf7ef

Please sign in to comment.