<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cory Robinson</title>
    <description>The latest articles on DEV Community by Cory Robinson (@crobinson42).</description>
    <link>https://dev.to/crobinson42</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F309063%2F4ff7a1a8-ae64-4b5b-b907-b98f059a8bca.png</url>
      <title>DEV Community: Cory Robinson</title>
      <link>https://dev.to/crobinson42</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/crobinson42"/>
    <language>en</language>
    <item>
      <title>NPM install measure slow deps install time</title>
      <dc:creator>Cory Robinson</dc:creator>
      <pubDate>Mon, 13 Sep 2021 22:59:54 +0000</pubDate>
      <link>https://dev.to/crobinson42/npm-install-measure-slow-deps-install-time-8o</link>
      <guid>https://dev.to/crobinson42/npm-install-measure-slow-deps-install-time-8o</guid>
      <description>&lt;p&gt;When you have slow &lt;code&gt;npm install&lt;/code&gt; times and you're sure it's not connection related, check which npm packages are the slowest and leading to your slow installs:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install -g slow-deps&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, run: &lt;code&gt;slow-deps&lt;/code&gt; in the project directory.&lt;/p&gt;

</description>
      <category>npm</category>
      <category>node</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Convert TS &lt;-&gt; JSON-Schema w/ typeconv</title>
      <dc:creator>Cory Robinson</dc:creator>
      <pubDate>Fri, 13 Aug 2021 19:44:33 +0000</pubDate>
      <link>https://dev.to/crobinson42/convert-ts-json-schema-w-typeconv-1n9n</link>
      <guid>https://dev.to/crobinson42/convert-ts-json-schema-w-typeconv-1n9n</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/grantila/typeconv#typescript"&gt;https://github.com/grantila/typeconv#typescript&lt;/a&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>json</category>
      <category>node</category>
      <category>npm</category>
    </item>
    <item>
      <title>Node.js Integration Best Practices</title>
      <dc:creator>Cory Robinson</dc:creator>
      <pubDate>Fri, 06 Aug 2021 14:32:36 +0000</pubDate>
      <link>https://dev.to/crobinson42/node-js-integration-best-practices-4n9n</link>
      <guid>https://dev.to/crobinson42/node-js-integration-best-practices-4n9n</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/testjavascript/nodejs-integration-tests-best-practices"&gt;https://github.com/testjavascript/nodejs-integration-tests-best-practices&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>📱Android - How does your team 👉 DEV -&gt; QA -&gt; Release ❓</title>
      <dc:creator>Cory Robinson</dc:creator>
      <pubDate>Wed, 10 Feb 2021 20:56:10 +0000</pubDate>
      <link>https://dev.to/crobinson42/android-how-does-your-team-dev-qa-release-1kkm</link>
      <guid>https://dev.to/crobinson42/android-how-does-your-team-dev-qa-release-1kkm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This post will outline our current process for mobile development on an Android app. Hopefully it will instigate discussion and responses on how other teams have implemented this software development lifecycle.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How our team ships Android apps (software development lifecycle):
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Developer checks out a feature branch to do work&lt;/li&gt;
&lt;li&gt;Developer pushes branch up, jenkins builds an apk with the feature branch name in the filename &lt;code&gt;[feature branch name].apk&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;QA team downloads and sideloads this feature branch apk to run on their Android device&lt;/li&gt;
&lt;li&gt;If QA passes, the developer merges the feature branch into &lt;code&gt;master&lt;/code&gt; branch&lt;/li&gt;
&lt;li&gt;To make an app store release, the developer checks out a release branch from &lt;code&gt;master&lt;/code&gt;, bumps the &lt;code&gt;versionCode&lt;/code&gt; and &lt;code&gt;versionName&lt;/code&gt; values, builds an apk and uploads for a Play Store release&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This process requires a lot of manual installing/uninstalling of Android &lt;code&gt;.apk&lt;/code&gt;'s but it is reliable for separating builds and features for testing.&lt;/p&gt;

&lt;p&gt;Does your team have a different way for Android software development lifecycle?&lt;/p&gt;

</description>
      <category>android</category>
      <category>qa</category>
      <category>mobile</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Custom Jest Snapshots Directory Setup</title>
      <dc:creator>Cory Robinson</dc:creator>
      <pubDate>Thu, 05 Mar 2020 04:31:49 +0000</pubDate>
      <link>https://dev.to/crobinson42/custom-jest-snapshots-directory-setup-41hp</link>
      <guid>https://dev.to/crobinson42/custom-jest-snapshots-directory-setup-41hp</guid>
      <description>&lt;p&gt;When you want to place your component test files right next to the component's but you don't want your directories littered with &lt;code&gt;__snapshots__/&lt;/code&gt; dirs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// __snapshots__/snapshotResolver.js&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;resolveSnapshotPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;testPath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;snapshotExtension&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;testPath&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="sr"&gt;test&lt;/span&gt;&lt;span class="se"&gt;\.([&lt;/span&gt;&lt;span class="sr"&gt;tj&lt;/span&gt;&lt;span class="se"&gt;]&lt;/span&gt;&lt;span class="sr"&gt;sx&lt;/span&gt;&lt;span class="se"&gt;?)&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="s2"&gt;`.test&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;snapshotExtension&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;
      &lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sr"&gt;/src&lt;/span&gt;&lt;span class="se"&gt;([/\\]&lt;/span&gt;&lt;span class="sr"&gt;components&lt;/span&gt;&lt;span class="se"&gt;)&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;__snapshots__&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
      &lt;span class="p"&gt;),&lt;/span&gt;

  &lt;span class="na"&gt;resolveTestPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;snapshotFilePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;snapshotExtension&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;snapshotFilePath&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;snapshotExtension&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;__snapshots__&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src/components&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;

  &lt;span class="na"&gt;testPathForConsistencyCheck&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;src/components/some.test.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// jest.config.js&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;preset&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// optional depending on your project&lt;/span&gt;

  &lt;span class="na"&gt;snapshotResolver&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./__snapshots__/snapshotResolver.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;

  &lt;span class="na"&gt;testMatch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;**/__tests__/**/?(*.)+(spec|test).(js|ts|tsx)&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;**/?(*.)+(spec|test).(js|ts|tsx)&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>react</category>
      <category>reactnative</category>
      <category>testing</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
