{"componentChunkName":"component---src-templates-post-js","path":"/unit-testing-mutations","result":{"data":{"markdownRemark":{"html":"<p>In this chapter we will be unit testing our mutation.</p>\n<p>In the <code class=\"language-text\">tests</code> folder, create a <code class=\"language-text\">makeABooking.test.js</code> file and add the following:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> makeABooking <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">\"../src/resolvers/mutation\"</span><span class=\"token punctuation\">;</span>\n\n\n<span class=\"token function\">describe</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Make a booking\"</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token function\">test</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Successfully able to make a booking\"</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">async</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">const</span> args <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n      listingId<span class=\"token operator\">:</span> <span class=\"token string\">\"a114dded-ddef-4052-a106-bb18b94e6b51\"</span><span class=\"token punctuation\">,</span>\n      bookingDate<span class=\"token operator\">:</span> <span class=\"token string\">\"24-Apr-20\"</span><span class=\"token punctuation\">,</span>\n      size<span class=\"token operator\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span>\n      customerEmail<span class=\"token operator\">:</span> <span class=\"token string\">\"angela@dundler.com\"</span><span class=\"token punctuation\">,</span>\n      customers<span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token punctuation\">{</span>\n          name<span class=\"token operator\">:</span> <span class=\"token string\">\"Dwight\"</span><span class=\"token punctuation\">,</span>\n          surname<span class=\"token operator\">:</span> <span class=\"token string\">\"Shrut\"</span><span class=\"token punctuation\">,</span>\n          passportNumber<span class=\"token operator\">:</span> <span class=\"token string\">\"3333344\"</span><span class=\"token punctuation\">,</span>\n          physioScore<span class=\"token operator\">:</span> <span class=\"token string\">\"454\"</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">{</span>\n          name<span class=\"token operator\">:</span> <span class=\"token string\">\"Pam\"</span><span class=\"token punctuation\">,</span>\n          surname<span class=\"token operator\">:</span> <span class=\"token string\">\"Papper\"</span><span class=\"token punctuation\">,</span>\n          passportNumber<span class=\"token operator\">:</span> <span class=\"token string\">\"34354\"</span><span class=\"token punctuation\">,</span>\n          physioScore<span class=\"token operator\">:</span> <span class=\"token string\">\"2945\"</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n      <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">const</span> context <span class=\"token operator\">=</span> <span class=\"token string\">\"context\"</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">const</span> response <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> <span class=\"token function\">makeABooking</span><span class=\"token punctuation\">(</span>args<span class=\"token punctuation\">,</span> context<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>response<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token punctuation\">}</span></code></pre></div>\n<p>💣 We are creating a mutation in the <code class=\"language-text\">args</code> with the necessary data.</p>\n<p>💣 Next we are making sure we get back a <code class=\"language-text\">bookingId</code> that the charge matches what we expect it to be.</p>\n<p>Then go to your terminal and run the test:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">$ yarn test makeABooking<span class=\"token punctuation\">.</span>test<span class=\"token punctuation\">.</span>js</code></pre></div>\n<p>Now all our tests are passing!</p>","frontmatter":{"date":"May 17, 2020","path":"/unit-testing-mutations","title":"Unit Testing Mutations","postnumber":19}}},"pageContext":{"previous":{"node":{"frontmatter":{"path":"/deploy-backend-code","postnumber":20}}},"next":{"node":{"frontmatter":{"path":"/unit-testing-queries","postnumber":18}}}}},"staticQueryHashes":["3207677222","3649515864","63159454"]}