A test against a string passes regardless of the value












2














This test pm.expect(jsonData.payload.invitationStatus == "A"); works regardless of the value that invitationStatus actually contains.



i.e. payload.invitationStatus = E will pass in the test.



How do I get this to pass only if the value is A?



Here are a couple of examples of the payload:



{
"payload": {
"buyer": "",
"error": "E",
"invitationStatus": "E",
"supplier": "",
"terms": ""
}
}

{
"payload": {
"buyer": "omitted omitted",
"error": "S",
"invitationStatus": "A",
"supplier": "ABC Supplier",
"terms": ""
}
}


Here's the test itself:



// Setters
let jsonData = JSON.parse(responseBody);

// Testers
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Invitation status is A", function () {
if(jsonData.payload) {
pm.expect(jsonData.payload.invitationStatus == "A");
} else {
throw new Error("Unexpected structure");
}
});









share|improve this question
























  • Your first line of your code in this question shows a comparison between values. Your test is showing a value declaration, not a comparison. pm.expect(jsonData.payload.invitationStatus = "A"); in that instance it does not matter what the value is as the invitation status is declared as "A" in the test, thus no matter what value is set, it will be reset when the test is run.
    – ViaTech
    Nov 23 at 0:23












  • @ViaTech I tried ===, == and = all of which passed regardless of the value. I updated the question.
    – Naguib Ihab
    Nov 23 at 0:25












  • ah okay looked simple enough, guess not. I'm also guessing you tested the value of payload.invitationStatus in the jsonData.payload conditional. Is that set correctly as the value you want?
    – ViaTech
    Nov 23 at 0:29












  • @ViaTech sorry I don't get what you're asking
    – Naguib Ihab
    Nov 23 at 0:36
















2














This test pm.expect(jsonData.payload.invitationStatus == "A"); works regardless of the value that invitationStatus actually contains.



i.e. payload.invitationStatus = E will pass in the test.



How do I get this to pass only if the value is A?



Here are a couple of examples of the payload:



{
"payload": {
"buyer": "",
"error": "E",
"invitationStatus": "E",
"supplier": "",
"terms": ""
}
}

{
"payload": {
"buyer": "omitted omitted",
"error": "S",
"invitationStatus": "A",
"supplier": "ABC Supplier",
"terms": ""
}
}


Here's the test itself:



// Setters
let jsonData = JSON.parse(responseBody);

// Testers
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Invitation status is A", function () {
if(jsonData.payload) {
pm.expect(jsonData.payload.invitationStatus == "A");
} else {
throw new Error("Unexpected structure");
}
});









share|improve this question
























  • Your first line of your code in this question shows a comparison between values. Your test is showing a value declaration, not a comparison. pm.expect(jsonData.payload.invitationStatus = "A"); in that instance it does not matter what the value is as the invitation status is declared as "A" in the test, thus no matter what value is set, it will be reset when the test is run.
    – ViaTech
    Nov 23 at 0:23












  • @ViaTech I tried ===, == and = all of which passed regardless of the value. I updated the question.
    – Naguib Ihab
    Nov 23 at 0:25












  • ah okay looked simple enough, guess not. I'm also guessing you tested the value of payload.invitationStatus in the jsonData.payload conditional. Is that set correctly as the value you want?
    – ViaTech
    Nov 23 at 0:29












  • @ViaTech sorry I don't get what you're asking
    – Naguib Ihab
    Nov 23 at 0:36














2












2








2







This test pm.expect(jsonData.payload.invitationStatus == "A"); works regardless of the value that invitationStatus actually contains.



i.e. payload.invitationStatus = E will pass in the test.



How do I get this to pass only if the value is A?



Here are a couple of examples of the payload:



{
"payload": {
"buyer": "",
"error": "E",
"invitationStatus": "E",
"supplier": "",
"terms": ""
}
}

{
"payload": {
"buyer": "omitted omitted",
"error": "S",
"invitationStatus": "A",
"supplier": "ABC Supplier",
"terms": ""
}
}


Here's the test itself:



// Setters
let jsonData = JSON.parse(responseBody);

// Testers
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Invitation status is A", function () {
if(jsonData.payload) {
pm.expect(jsonData.payload.invitationStatus == "A");
} else {
throw new Error("Unexpected structure");
}
});









share|improve this question















This test pm.expect(jsonData.payload.invitationStatus == "A"); works regardless of the value that invitationStatus actually contains.



i.e. payload.invitationStatus = E will pass in the test.



How do I get this to pass only if the value is A?



Here are a couple of examples of the payload:



{
"payload": {
"buyer": "",
"error": "E",
"invitationStatus": "E",
"supplier": "",
"terms": ""
}
}

{
"payload": {
"buyer": "omitted omitted",
"error": "S",
"invitationStatus": "A",
"supplier": "ABC Supplier",
"terms": ""
}
}


Here's the test itself:



// Setters
let jsonData = JSON.parse(responseBody);

// Testers
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Invitation status is A", function () {
if(jsonData.payload) {
pm.expect(jsonData.payload.invitationStatus == "A");
} else {
throw new Error("Unexpected structure");
}
});






postman newman






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 23 at 0:24

























asked Nov 23 at 0:07









Naguib Ihab

1,5341637




1,5341637












  • Your first line of your code in this question shows a comparison between values. Your test is showing a value declaration, not a comparison. pm.expect(jsonData.payload.invitationStatus = "A"); in that instance it does not matter what the value is as the invitation status is declared as "A" in the test, thus no matter what value is set, it will be reset when the test is run.
    – ViaTech
    Nov 23 at 0:23












  • @ViaTech I tried ===, == and = all of which passed regardless of the value. I updated the question.
    – Naguib Ihab
    Nov 23 at 0:25












  • ah okay looked simple enough, guess not. I'm also guessing you tested the value of payload.invitationStatus in the jsonData.payload conditional. Is that set correctly as the value you want?
    – ViaTech
    Nov 23 at 0:29












  • @ViaTech sorry I don't get what you're asking
    – Naguib Ihab
    Nov 23 at 0:36


















  • Your first line of your code in this question shows a comparison between values. Your test is showing a value declaration, not a comparison. pm.expect(jsonData.payload.invitationStatus = "A"); in that instance it does not matter what the value is as the invitation status is declared as "A" in the test, thus no matter what value is set, it will be reset when the test is run.
    – ViaTech
    Nov 23 at 0:23












  • @ViaTech I tried ===, == and = all of which passed regardless of the value. I updated the question.
    – Naguib Ihab
    Nov 23 at 0:25












  • ah okay looked simple enough, guess not. I'm also guessing you tested the value of payload.invitationStatus in the jsonData.payload conditional. Is that set correctly as the value you want?
    – ViaTech
    Nov 23 at 0:29












  • @ViaTech sorry I don't get what you're asking
    – Naguib Ihab
    Nov 23 at 0:36
















Your first line of your code in this question shows a comparison between values. Your test is showing a value declaration, not a comparison. pm.expect(jsonData.payload.invitationStatus = "A"); in that instance it does not matter what the value is as the invitation status is declared as "A" in the test, thus no matter what value is set, it will be reset when the test is run.
– ViaTech
Nov 23 at 0:23






Your first line of your code in this question shows a comparison between values. Your test is showing a value declaration, not a comparison. pm.expect(jsonData.payload.invitationStatus = "A"); in that instance it does not matter what the value is as the invitation status is declared as "A" in the test, thus no matter what value is set, it will be reset when the test is run.
– ViaTech
Nov 23 at 0:23














@ViaTech I tried ===, == and = all of which passed regardless of the value. I updated the question.
– Naguib Ihab
Nov 23 at 0:25






@ViaTech I tried ===, == and = all of which passed regardless of the value. I updated the question.
– Naguib Ihab
Nov 23 at 0:25














ah okay looked simple enough, guess not. I'm also guessing you tested the value of payload.invitationStatus in the jsonData.payload conditional. Is that set correctly as the value you want?
– ViaTech
Nov 23 at 0:29






ah okay looked simple enough, guess not. I'm also guessing you tested the value of payload.invitationStatus in the jsonData.payload conditional. Is that set correctly as the value you want?
– ViaTech
Nov 23 at 0:29














@ViaTech sorry I don't get what you're asking
– Naguib Ihab
Nov 23 at 0:36




@ViaTech sorry I don't get what you're asking
– Naguib Ihab
Nov 23 at 0:36












1 Answer
1






active

oldest

votes


















0














I'm not sure why the == didn't work but this worked pm.expect(jsonData.payload.invitationStatus).to.eql("A");



enter image description here



Here's a good resource for other postman tests examples https://www.getpostman.com/docs/v6/postman/scripts/test_examples






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53439281%2fa-test-against-a-string-passes-regardless-of-the-value%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    I'm not sure why the == didn't work but this worked pm.expect(jsonData.payload.invitationStatus).to.eql("A");



    enter image description here



    Here's a good resource for other postman tests examples https://www.getpostman.com/docs/v6/postman/scripts/test_examples






    share|improve this answer


























      0














      I'm not sure why the == didn't work but this worked pm.expect(jsonData.payload.invitationStatus).to.eql("A");



      enter image description here



      Here's a good resource for other postman tests examples https://www.getpostman.com/docs/v6/postman/scripts/test_examples






      share|improve this answer
























        0












        0








        0






        I'm not sure why the == didn't work but this worked pm.expect(jsonData.payload.invitationStatus).to.eql("A");



        enter image description here



        Here's a good resource for other postman tests examples https://www.getpostman.com/docs/v6/postman/scripts/test_examples






        share|improve this answer












        I'm not sure why the == didn't work but this worked pm.expect(jsonData.payload.invitationStatus).to.eql("A");



        enter image description here



        Here's a good resource for other postman tests examples https://www.getpostman.com/docs/v6/postman/scripts/test_examples







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 23 at 0:48









        Naguib Ihab

        1,5341637




        1,5341637






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53439281%2fa-test-against-a-string-passes-regardless-of-the-value%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            What visual should I use to simply compare current year value vs last year in Power BI desktop

            How to ignore python UserWarning in pytest?

            Alexandru Averescu