Skip to content

Commit 5a73f4b

Browse files
committed
Added extensive case-matching tests and feedback handling for Chunk 11 in Postman collection
1 parent 6df9710 commit 5a73f4b

1 file changed

Lines changed: 318 additions & 0 deletions

File tree

postman_collection.json

Lines changed: 318 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3586,6 +3586,324 @@
35863586
]
35873587
}
35883588
]
3589+
},
3590+
{
3591+
"name": "Chunk 11 — Matched Case",
3592+
"item": [
3593+
{
3594+
"name": "Legacy",
3595+
"item": [
3596+
{
3597+
"name": "No match: matched_case absent",
3598+
"event": [
3599+
{
3600+
"listen": "prerequest",
3601+
"script": {
3602+
"type": "text/javascript",
3603+
"exec": [
3604+
"eval(pm.globals.get('__helpers'));",
3605+
"setLegacyEvalReq('x+1', 'x+2', {strict_syntax:false, cases:[{answer:'x+3', feedback:'Try x+3.'}]});"
3606+
]
3607+
}
3608+
},
3609+
{
3610+
"listen": "test",
3611+
"script": {
3612+
"type": "text/javascript",
3613+
"exec": [
3614+
"var raw = pm.response.json();",
3615+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3616+
"pm.test('is_correct is false', function () { pm.expect(r.result.is_correct).to.be.false; });",
3617+
"pm.test('matched_case is absent', function () { pm.expect(r.result).to.not.have.property('matched_case'); });",
3618+
"pm.test('feedback is absent', function () { pm.expect(r.result).to.not.have.property('feedback'); });"
3619+
]
3620+
}
3621+
}
3622+
],
3623+
"request": {
3624+
"method": "POST",
3625+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3626+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3627+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3628+
}
3629+
},
3630+
{
3631+
"name": "First case match: matched_case is 0",
3632+
"event": [
3633+
{
3634+
"listen": "prerequest",
3635+
"script": {
3636+
"type": "text/javascript",
3637+
"exec": [
3638+
"eval(pm.globals.get('__helpers'));",
3639+
"setLegacyEvalReq('x+1', 'x+2', {strict_syntax:false, cases:[{answer:'x+1', feedback:'You entered x+1.'}]});"
3640+
]
3641+
}
3642+
},
3643+
{
3644+
"listen": "test",
3645+
"script": {
3646+
"type": "text/javascript",
3647+
"exec": [
3648+
"var raw = pm.response.json();",
3649+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3650+
"pm.test('is_correct is false', function () { pm.expect(r.result.is_correct).to.be.false; });",
3651+
"pm.test('matched_case is 0', function () { pm.expect(r.result.matched_case).to.equal(0); });",
3652+
"pm.test('feedback is case message', function () { pm.expect(r.result.feedback).to.equal('You entered x+1.'); });"
3653+
]
3654+
}
3655+
}
3656+
],
3657+
"request": {
3658+
"method": "POST",
3659+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3660+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3661+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3662+
}
3663+
},
3664+
{
3665+
"name": "Second case match: matched_case is 1",
3666+
"event": [
3667+
{
3668+
"listen": "prerequest",
3669+
"script": {
3670+
"type": "text/javascript",
3671+
"exec": [
3672+
"eval(pm.globals.get('__helpers'));",
3673+
"setLegacyEvalReq('x+1', 'x+2', {strict_syntax:false, cases:[{answer:'x+3', feedback:'Not case 0.'},{answer:'x+1', feedback:'You entered x+1.'}]});"
3674+
]
3675+
}
3676+
},
3677+
{
3678+
"listen": "test",
3679+
"script": {
3680+
"type": "text/javascript",
3681+
"exec": [
3682+
"var raw = pm.response.json();",
3683+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3684+
"pm.test('matched_case is 1', function () { pm.expect(r.result.matched_case).to.equal(1); });",
3685+
"pm.test('feedback is case 1 message', function () { pm.expect(r.result.feedback).to.equal('You entered x+1.'); });"
3686+
]
3687+
}
3688+
}
3689+
],
3690+
"request": {
3691+
"method": "POST",
3692+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3693+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3694+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3695+
}
3696+
},
3697+
{
3698+
"name": "Case mark override: is_correct overridden to true",
3699+
"event": [
3700+
{
3701+
"listen": "prerequest",
3702+
"script": {
3703+
"type": "text/javascript",
3704+
"exec": [
3705+
"eval(pm.globals.get('__helpers'));",
3706+
"setLegacyEvalReq('x+1', 'x+2', {strict_syntax:false, cases:[{answer:'x+1', feedback:'Close!', mark:1}]});"
3707+
]
3708+
}
3709+
},
3710+
{
3711+
"listen": "test",
3712+
"script": {
3713+
"type": "text/javascript",
3714+
"exec": [
3715+
"var raw = pm.response.json();",
3716+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3717+
"pm.test('matched_case is 0', function () { pm.expect(r.result.matched_case).to.equal(0); });",
3718+
"pm.test('is_correct overridden to true', function () { pm.expect(r.result.is_correct).to.be.true; });",
3719+
"pm.test('feedback is case message', function () { pm.expect(r.result.feedback).to.equal('Close!'); });"
3720+
]
3721+
}
3722+
}
3723+
],
3724+
"request": {
3725+
"method": "POST",
3726+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3727+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3728+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3729+
}
3730+
}
3731+
]
3732+
},
3733+
{
3734+
"name": "muEd",
3735+
"item": [
3736+
{
3737+
"name": "No match: matchedCase is null",
3738+
"event": [
3739+
{
3740+
"listen": "prerequest",
3741+
"script": {
3742+
"type": "text/javascript",
3743+
"exec": [
3744+
"eval(pm.globals.get('__helpers'));",
3745+
"setMuEdEvalReq('x+1', 'x+2', {strict_syntax:false, cases:[{answer:'x+3', feedback:'Try x+3.'}]});"
3746+
]
3747+
}
3748+
},
3749+
{
3750+
"listen": "test",
3751+
"script": {
3752+
"type": "text/javascript",
3753+
"exec": [
3754+
"var raw = pm.response.json();",
3755+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3756+
"pm.test('response is an array', function () { pm.expect(r).to.be.an('array'); });",
3757+
"pm.test('awardedPoints is 0', function () { pm.expect(r[0].awardedPoints).to.equal(0); });",
3758+
"pm.test('matchedCase is null', function () { pm.expect(r[0].matchedCase).to.be.null; });"
3759+
]
3760+
}
3761+
}
3762+
],
3763+
"request": {
3764+
"method": "POST",
3765+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3766+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3767+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3768+
}
3769+
},
3770+
{
3771+
"name": "First case match: matchedCase is 0",
3772+
"event": [
3773+
{
3774+
"listen": "prerequest",
3775+
"script": {
3776+
"type": "text/javascript",
3777+
"exec": [
3778+
"eval(pm.globals.get('__helpers'));",
3779+
"setMuEdEvalReq('100+100.1(j)', '100+100.1j', {atol:0,rtol:0,strict_syntax:false,physical_quantity:false,elementary_functions:true,cases:[{answer:'100+100.1(j)',params:{atol:0,rtol:0,strict_syntax:false,physical_quantity:false,elementary_functions:true},feedback:'Hello'}]});"
3780+
]
3781+
}
3782+
},
3783+
{
3784+
"listen": "test",
3785+
"script": {
3786+
"type": "text/javascript",
3787+
"exec": [
3788+
"var raw = pm.response.json();",
3789+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3790+
"pm.test('response is an array', function () { pm.expect(r).to.be.an('array'); });",
3791+
"pm.test('matchedCase is 0', function () { pm.expect(r[0].matchedCase).to.equal(0); });",
3792+
"pm.test('message is case feedback', function () { pm.expect(r[0].message).to.equal('Hello'); });"
3793+
]
3794+
}
3795+
}
3796+
],
3797+
"request": {
3798+
"method": "POST",
3799+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3800+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3801+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3802+
}
3803+
},
3804+
{
3805+
"name": "Second case match: matchedCase is 1",
3806+
"event": [
3807+
{
3808+
"listen": "prerequest",
3809+
"script": {
3810+
"type": "text/javascript",
3811+
"exec": [
3812+
"eval(pm.globals.get('__helpers'));",
3813+
"setMuEdEvalReq('x+1', 'x+2', {strict_syntax:false, cases:[{answer:'x+3', feedback:'Not case 0.'},{answer:'x+1', feedback:'This is case 1.'}]});"
3814+
]
3815+
}
3816+
},
3817+
{
3818+
"listen": "test",
3819+
"script": {
3820+
"type": "text/javascript",
3821+
"exec": [
3822+
"var raw = pm.response.json();",
3823+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3824+
"pm.test('matchedCase is 1', function () { pm.expect(r[0].matchedCase).to.equal(1); });",
3825+
"pm.test('message is case 1 feedback', function () { pm.expect(r[0].message).to.equal('This is case 1.'); });"
3826+
]
3827+
}
3828+
}
3829+
],
3830+
"request": {
3831+
"method": "POST",
3832+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3833+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3834+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3835+
}
3836+
},
3837+
{
3838+
"name": "Correct: matchedCase is null",
3839+
"event": [
3840+
{
3841+
"listen": "prerequest",
3842+
"script": {
3843+
"type": "text/javascript",
3844+
"exec": [
3845+
"eval(pm.globals.get('__helpers'));",
3846+
"setMuEdEvalReq('x+1', 'x+1', {strict_syntax:false, cases:[{answer:'x+1', feedback:'Matched but not checked.'}]});"
3847+
]
3848+
}
3849+
},
3850+
{
3851+
"listen": "test",
3852+
"script": {
3853+
"type": "text/javascript",
3854+
"exec": [
3855+
"var raw = pm.response.json();",
3856+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3857+
"pm.test('awardedPoints is 1', function () { pm.expect(r[0].awardedPoints).to.equal(1); });",
3858+
"pm.test('matchedCase is null', function () { pm.expect(r[0].matchedCase).to.be.null; });"
3859+
]
3860+
}
3861+
}
3862+
],
3863+
"request": {
3864+
"method": "POST",
3865+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3866+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3867+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3868+
}
3869+
},
3870+
{
3871+
"name": "Case mark override: awardedPoints is 1",
3872+
"event": [
3873+
{
3874+
"listen": "prerequest",
3875+
"script": {
3876+
"type": "text/javascript",
3877+
"exec": [
3878+
"eval(pm.globals.get('__helpers'));",
3879+
"setMuEdEvalReq('x+1', 'x+2', {strict_syntax:false, cases:[{answer:'x+1', feedback:'Close enough!', mark:1}]});"
3880+
]
3881+
}
3882+
},
3883+
{
3884+
"listen": "test",
3885+
"script": {
3886+
"type": "text/javascript",
3887+
"exec": [
3888+
"var raw = pm.response.json();",
3889+
"var r = (raw.body !== undefined) ? JSON.parse(raw.body) : raw;",
3890+
"pm.test('matchedCase is 0', function () { pm.expect(r[0].matchedCase).to.equal(0); });",
3891+
"pm.test('awardedPoints overridden to 1', function () { pm.expect(r[0].awardedPoints).to.equal(1); });",
3892+
"pm.test('message is case feedback', function () { pm.expect(r[0].message).to.equal('Close enough!'); });"
3893+
]
3894+
}
3895+
}
3896+
],
3897+
"request": {
3898+
"method": "POST",
3899+
"header": [{ "key": "Content-Type", "value": "application/json" }],
3900+
"body": { "mode": "raw", "raw": "{{lambdaEvent}}", "options": { "raw": { "language": "json" } } },
3901+
"url": { "raw": "{{requestUrl}}", "host": ["{{requestUrl}}"] }
3902+
}
3903+
}
3904+
]
3905+
}
3906+
]
35893907
}
35903908
]
35913909
}

0 commit comments

Comments
 (0)