Allow yaml tests to evaluate assertions and prohibits

master
Austin Schaffer 2020-03-12 13:04:43 -04:00
commit 5f3ccc6894
3 changed files with 28 additions and 9 deletions

View File

@ -19,7 +19,8 @@
<param-copy name="@values@" />
</classify>
<t:assert failure="Retrying suppliers are ineligible">
<t:assert failure="Retrying suppliers are ineligible"
as="-assert-supplier-pending">
<t:match-eq on="__retry" value="FALSE" />
</t:assert>
</template>

View File

@ -38,6 +38,11 @@ module.exports = Class( 'TestCase',
return this._caseData.description || "";
},
get allow_failures()
{
return this._caseData.allow_failures || false;
},
get data()
{
return this._caseData.data || {};
@ -72,9 +77,10 @@ module.exports = Class( 'TestCase',
} );
return module.exports( {
description: this.description,
data: new_data,
expect: new_expect,
description: this.description,
allow_failures: this.allow_failures,
data: new_data,
expect: new_expect,
} );
},

View File

@ -111,10 +111,22 @@ module.exports = Class( 'TestRunner',
*
* @return {Object<desc,i,total,failures>} test results
*/
'protected runTest'( { description: desc, data, expect }, test_i, total )
{
'protected runTest'(
{
description: desc,
allow_failures,
data,
expect,
},
test_i,
total
) {
const can_term = ( typeof allow_failures === 'string' )
? !( allow_failures.toLowerCase() === 'true')
: !allow_failures;
// no input map---#rate uses params directly
const result = this._tryRun( data );
const result = this._tryRun( data, can_term );
const cmp = Object.keys( expect ).map(
field => [
@ -163,14 +175,14 @@ module.exports = Class( 'TestRunner',
*
* @return {Object|Error} result or error
*/
'private _tryRun'( data )
'private _tryRun'( data, can_term )
{
// no input map---#rate uses params directly
try
{
this._verifyKnownParams( data );
return this._program.rater( data ).vars;
return this._program.rater( data, can_term ).vars;
}
catch( e )
{