Allow yaml tests to evaluate assertions and prohibits
commit
5f3ccc6894
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
} );
|
||||
},
|
||||
|
||||
|
|
|
@ -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 )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue