Allow yaml tests to evaluate assertions and prohibits
commit
5f3ccc6894
|
@ -19,7 +19,8 @@
|
||||||
<param-copy name="@values@" />
|
<param-copy name="@values@" />
|
||||||
</classify>
|
</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:match-eq on="__retry" value="FALSE" />
|
||||||
</t:assert>
|
</t:assert>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -38,6 +38,11 @@ module.exports = Class( 'TestCase',
|
||||||
return this._caseData.description || "";
|
return this._caseData.description || "";
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get allow_failures()
|
||||||
|
{
|
||||||
|
return this._caseData.allow_failures || false;
|
||||||
|
},
|
||||||
|
|
||||||
get data()
|
get data()
|
||||||
{
|
{
|
||||||
return this._caseData.data || {};
|
return this._caseData.data || {};
|
||||||
|
@ -73,6 +78,7 @@ module.exports = Class( 'TestCase',
|
||||||
|
|
||||||
return module.exports( {
|
return module.exports( {
|
||||||
description: this.description,
|
description: this.description,
|
||||||
|
allow_failures: this.allow_failures,
|
||||||
data: new_data,
|
data: new_data,
|
||||||
expect: new_expect,
|
expect: new_expect,
|
||||||
} );
|
} );
|
||||||
|
|
|
@ -111,10 +111,22 @@ module.exports = Class( 'TestRunner',
|
||||||
*
|
*
|
||||||
* @return {Object<desc,i,total,failures>} test results
|
* @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
|
// 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(
|
const cmp = Object.keys( expect ).map(
|
||||||
field => [
|
field => [
|
||||||
|
@ -163,14 +175,14 @@ module.exports = Class( 'TestRunner',
|
||||||
*
|
*
|
||||||
* @return {Object|Error} result or error
|
* @return {Object|Error} result or error
|
||||||
*/
|
*/
|
||||||
'private _tryRun'( data )
|
'private _tryRun'( data, can_term )
|
||||||
{
|
{
|
||||||
// no input map---#rate uses params directly
|
// no input map---#rate uses params directly
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this._verifyKnownParams( data );
|
this._verifyKnownParams( data );
|
||||||
|
|
||||||
return this._program.rater( data ).vars;
|
return this._program.rater( data, can_term ).vars;
|
||||||
}
|
}
|
||||||
catch( e )
|
catch( e )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue