Custom function in testcafe










1














So, i am trying to create a custom function that will allow me to check if a field contains a number or a text, but for further test i will need to check more complex stuff, like if the sum of some table equals something, etc.
I can't find examples of custom functions for example:






function isNumber(n) a < 0) 
return true

return false

test('Test example', async t =>
await t
.expect(isNumber(Selector('#thisNum').innerText)).ok('This is a number' );

);












share|improve this question




























    1














    So, i am trying to create a custom function that will allow me to check if a field contains a number or a text, but for further test i will need to check more complex stuff, like if the sum of some table equals something, etc.
    I can't find examples of custom functions for example:






    function isNumber(n) a < 0) 
    return true

    return false

    test('Test example', async t =>
    await t
    .expect(isNumber(Selector('#thisNum').innerText)).ok('This is a number' );

    );












    share|improve this question


























      1












      1








      1







      So, i am trying to create a custom function that will allow me to check if a field contains a number or a text, but for further test i will need to check more complex stuff, like if the sum of some table equals something, etc.
      I can't find examples of custom functions for example:






      function isNumber(n) a < 0) 
      return true

      return false

      test('Test example', async t =>
      await t
      .expect(isNumber(Selector('#thisNum').innerText)).ok('This is a number' );

      );












      share|improve this question















      So, i am trying to create a custom function that will allow me to check if a field contains a number or a text, but for further test i will need to check more complex stuff, like if the sum of some table equals something, etc.
      I can't find examples of custom functions for example:






      function isNumber(n) a < 0) 
      return true

      return false

      test('Test example', async t =>
      await t
      .expect(isNumber(Selector('#thisNum').innerText)).ok('This is a number' );

      );








      function isNumber(n) a < 0) 
      return true

      return false

      test('Test example', async t =>
      await t
      .expect(isNumber(Selector('#thisNum').innerText)).ok('This is a number' );

      );





      function isNumber(n) a < 0) 
      return true

      return false

      test('Test example', async t =>
      await t
      .expect(isNumber(Selector('#thisNum').innerText)).ok('This is a number' );

      );






      javascript automated-tests e2e-testing testcafe






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 14 '18 at 11:45









      Alex Skorkin

      2,1171532




      2,1171532










      asked Nov 13 '18 at 8:19









      juandiegolesjuandiegoles

      708




      708






















          1 Answer
          1






          active

          oldest

          votes


















          5














          The assertion message will only be displayed when the assertion fails (refer to the message parameter). For example,



          await t
          .expect(failingValue).ok('failingValue is not a number');


          Would display something like the following on a failed test:



          1) AssertionError: failingValue is not a number: expected false to be truthy


          Therefore, I'd never expected to see the "This is a number" message displayed.



          As for the function, I've experienced a couple of instances where the promise wasn't resolved yet, so try awaiting the number selector:



          await t
          .expect(isNumber(await Selector('#thisNum').innerText)).ok('This is a number');


          Hope this helps.






          share|improve this answer






















          • Thanks Alex! At the end i decided to use cypress.js but your solution seems to work as a charm
            – juandiegoles
            Nov 19 '18 at 10:32










          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%2f53276627%2fcustom-function-in-testcafe%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









          5














          The assertion message will only be displayed when the assertion fails (refer to the message parameter). For example,



          await t
          .expect(failingValue).ok('failingValue is not a number');


          Would display something like the following on a failed test:



          1) AssertionError: failingValue is not a number: expected false to be truthy


          Therefore, I'd never expected to see the "This is a number" message displayed.



          As for the function, I've experienced a couple of instances where the promise wasn't resolved yet, so try awaiting the number selector:



          await t
          .expect(isNumber(await Selector('#thisNum').innerText)).ok('This is a number');


          Hope this helps.






          share|improve this answer






















          • Thanks Alex! At the end i decided to use cypress.js but your solution seems to work as a charm
            – juandiegoles
            Nov 19 '18 at 10:32















          5














          The assertion message will only be displayed when the assertion fails (refer to the message parameter). For example,



          await t
          .expect(failingValue).ok('failingValue is not a number');


          Would display something like the following on a failed test:



          1) AssertionError: failingValue is not a number: expected false to be truthy


          Therefore, I'd never expected to see the "This is a number" message displayed.



          As for the function, I've experienced a couple of instances where the promise wasn't resolved yet, so try awaiting the number selector:



          await t
          .expect(isNumber(await Selector('#thisNum').innerText)).ok('This is a number');


          Hope this helps.






          share|improve this answer






















          • Thanks Alex! At the end i decided to use cypress.js but your solution seems to work as a charm
            – juandiegoles
            Nov 19 '18 at 10:32













          5












          5








          5






          The assertion message will only be displayed when the assertion fails (refer to the message parameter). For example,



          await t
          .expect(failingValue).ok('failingValue is not a number');


          Would display something like the following on a failed test:



          1) AssertionError: failingValue is not a number: expected false to be truthy


          Therefore, I'd never expected to see the "This is a number" message displayed.



          As for the function, I've experienced a couple of instances where the promise wasn't resolved yet, so try awaiting the number selector:



          await t
          .expect(isNumber(await Selector('#thisNum').innerText)).ok('This is a number');


          Hope this helps.






          share|improve this answer














          The assertion message will only be displayed when the assertion fails (refer to the message parameter). For example,



          await t
          .expect(failingValue).ok('failingValue is not a number');


          Would display something like the following on a failed test:



          1) AssertionError: failingValue is not a number: expected false to be truthy


          Therefore, I'd never expected to see the "This is a number" message displayed.



          As for the function, I've experienced a couple of instances where the promise wasn't resolved yet, so try awaiting the number selector:



          await t
          .expect(isNumber(await Selector('#thisNum').innerText)).ok('This is a number');


          Hope this helps.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 14 '18 at 11:46









          Alex Skorkin

          2,1171532




          2,1171532










          answered Nov 13 '18 at 21:18









          lostlemonlostlemon

          664




          664











          • Thanks Alex! At the end i decided to use cypress.js but your solution seems to work as a charm
            – juandiegoles
            Nov 19 '18 at 10:32
















          • Thanks Alex! At the end i decided to use cypress.js but your solution seems to work as a charm
            – juandiegoles
            Nov 19 '18 at 10:32















          Thanks Alex! At the end i decided to use cypress.js but your solution seems to work as a charm
          – juandiegoles
          Nov 19 '18 at 10:32




          Thanks Alex! At the end i decided to use cypress.js but your solution seems to work as a charm
          – juandiegoles
          Nov 19 '18 at 10:32

















          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%2f53276627%2fcustom-function-in-testcafe%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

          Top Tejano songwriter Luis Silva dead of heart attack at 64

          ReactJS Fetched API data displays live - need Data displayed static

          政党