Unit testing with Jest: Redux + async actions + fetch

  • Unit testing with Jest: Redux + async actions + fetchUsing Jest v20LAST UPDATE: June 24, 2017.
  • Ok, now, let’s test it step by step based on the WritingTests from the Redux docs.A big change here since I first wrote this article in 2016 is that Jest now does not mock your dependencies automatically like it used to.
  • /api’;import configureMockStore from ‘redux-mock-store’import thunk from ‘redux-thunk’const middlewares = [ thunk ];const mockStore = I am also going to write a helper method to mock the fetch response (we don’t need nock as suggested in the Redux Writing Test example):const mockResponse = (status, statusText, response) = { return new window.Response(response,…
  • Do you remember the import at the beginning of our example action code?import ‘whatwg-fetch’If you or your team forget to use the polyfill version of fetch, Chrome or FF will still work and you won’t notice it!
  • Thanks to the Redux docs for the great explanation of how we can test those async actions and for the mocha example (2017 note: They changed the example to use Jest!)

I have been using Jest since its beginnings. I won’t lie, the path has been painful: Things like updating from version 0.x.0 to version 0.y.0 (specially to version 0.4.0) was particularly terrible…
Continue reading “Unit testing with Jest: Redux + async actions + fetch”

Story of rewriting react-native-opentok and challenges that we have encountered down the road…

  • Finally, we solved all of them :)This article contains useful steps that you can perform in order to debug and fix real-life issues on native sideWhat is OpenTok?The OpenTok platform, developed by TokBox, makes it easy to embed high-quality interactive video, voice, messaging, and screen sharing into web and mobile apps.It…
  • Here are the most annoying issues that we have encountered on each platform respectively while writing clients:Android: Updating native view doesn’t work.We had a native view which we wanted to update after we connect to a session and receive a stream.
  • Our Subscriber view implements SessionDelegate class what means we can set this view as a delegate in session and listen on events i.e. when session receive a stream, session instance invokes method onStreamReceived on pointer to delegate.
  • Enabling zombies in Xcode is very easy.Click the active scheme in the top left and choose Edit Scheme.Select Run on the left.Open the Diagnostics tab at the top.Tick the checkbox labeled Enable Zombie Objects.Tick the checkbox labeled Enable Zombie Objects.Now Xcode’s Console will give you more complex message i.e.[RNOpenTokSubscriberView respondsToSelector:] message…
  • So remember when you reload JS part of application new instance of your native module will be created but if you are using singleton it will be the same instance as before reload.As I wrote at the beginning we solved all of our issues but some of them took a…

At Callstack we have open source meetings each month. At one of the past meetings we came up with idea to re-maintain our old project called react-native-opentok, because it was a bit dusty and…
Continue reading “Story of rewriting react-native-opentok and challenges that we have encountered down the road…”

Two to ReactJS – Rajat Patwa – Medium

Two to ReactJS  #javascript #react #reactjs

  • Two to ReactJSOkay so let’s React…React fastReact docs describes React like this.A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACESWell!
  • Go through these two videosStep #3 (Optional)Let’s dive into reacting with this super tutorial on YouTube.Step #4React’s documentation(quick start guide) is the perfect place to start learning React.
  • Its sort and sweet and React has one of the best documentation out there.
  • Complete this Quick start guide: #5Build a small(or large, your wish :D) react app and comment GitHub URL of your app in the comments.Advanced React.JSAfter doing quick start guide and building one or two React apps lets learn more advanced features and internals of react.step #6Learn what is Reconciliation in react and how it works here.
  • Look into my eyes and say “I am the master of React”Bye-bye… See ya!

Well! you know JavaScript. Let’s get your hands dirty with ReactJS. This article will guide through a road-map of resources from basic to advanced React. React’s documentation(quick start guide) is…
Continue reading “Two to ReactJS – Rajat Patwa – Medium”

Easily Styling React Apps In JavaScript

Easily Styling React Apps In JavaScript

☞ 

#reactjs #javascript

  • While many developers still use CSS to style their React apps, writing styles in JavaScript has become an increasingly popular practice as it gives all of the conveniences of CSS preprocessors without the need to learn a new language.
  • Most CSS-in-JS libraries involve creating a JavaScript object of styles.
  • As an example, this is what a style object looks like using my preferred library, Aphrodite.
  • For example, when styling placeholder text, I use a function that returns an object of styles:

    One of biggest advantages of writing styles in JavaScript is that classNames are scoped to each component by default.

  • There are lots of helpful libraries for creating JavaScript styles.

Writing styles React Apps in JavaScript has become an increasingly popular practice as it gives all of the conveniences of CSS preprocessors
Continue reading “Easily Styling React Apps In JavaScript”

Accepting Payments in a React Native App (Part 2) – Reginald Johnson – Medium

2nd in series: #serverless #AWS #lambda #NodeJS app server for making @braintree payments

  • Accepting Payments in a React Native App (Part 2)Building A Server Using Amazon Web ServicesBackgroundThis article is part two of a four part series on integrating a payment system into a React Native mobile application.This is were we are in the movie…The other articles can be found here:Project DiscussionApplication Server using Amazon Web ServicesInitial Version Using Vanilla-JavaScriptReact Component Based VersionThis article describes the Braintree’s data flow involving a client, an application server, and Braintree’s server.
  • It provides a secure easy to set up payment form by sacrificing some flexibility.Application gets client token from our serverServer gets token from Braintree and sends it back to our mobile applicationClient uses that token in order to request a payment form UI element from BraintreeBraintree provides a secure UI component for the mobile application to displayMobile application displays that UI component to the user so that user can input payment information and commit the actual purchase at which point the payment information is sent to BraintreeBraintree then provides a nonce (think of it as an authorization ticket) to the app that basically says “Okay, that user is good to make this purchase.
  • This article focuses on the interations between the client, through the application server, to Braintree, as well as the reverse.Now let’s talk about the pieces that will do all those.DesignBased on Braintree’s overview its pretty obvious that a server is requirement in order to accept payments.
  • The endpoints can be created in AWS API Gateway which will connect to the Lambda function that contains the server logic.This overall design is summarized in the graphic belowLogic flow between client, the application server, and Braintree’s serverImplementationLet’s start with building the Lambda function that will perform the logic portion of the application server.
  • Passing a query string of “action=get-client-token” to the test results in the following output:Output of a successful API Gateway testConclusionI hope this article did an adequate job providing an overview on how to replicate an node.js server with Express using AWS API Gateway and Lambda in order to act as an application server to accept Braintree payments.I will discuss the creating the React Native client in the next article.Reginald Johnson has maintained his passion for coding throughout his 20+ year career as an Officer in the United States Navy.

This article is part two of a four part series on integrating a payment system into a React Native mobile application. This article describes the Braintree’s data flow involving a client, an…
Continue reading “Accepting Payments in a React Native App (Part 2) – Reginald Johnson – Medium”

Iterators Using ES6 – Felipe Valdivia – Medium

  • However, as is often the case when a task occurs frequently, JavaScript now provides methods that simplify this task.These methods, called iterators, are called on arrays and complete such tasks as altering each element and selecting elements that fit certain criteria.So in this article you are going to learn how to use some of this iterator.
  • forEach()” will execute the same code on each element of an array.forEach() ExampleThis iterator will execute the same code on each element of an array, so in the example above we are going to go over each element in our array and print it on the console, the argument that you can see in parenthesis doesn’t matter in this case we are using “fruitItem” because is a good practice to have descriptives names.
  • map() iterator but in this case we are creating a new array with the result, so we need to create the variable and inside the block have the condition, that in this case we are going to create a new array with all the numbers divided by 100.
  • filter() exampleIn this example you can see how with filter we go over all the items but we just return the ones that are shorter than 6 characters creating a new array just with these data that is already filter for our condition.ConclusionYes I know this article is short but I present to you 3 different types of iterator using javascript with this you can start playing with them creating projects just to get familiar with them.I can give you some research task that you can do, look for this 3 other that they are pretty common and learn how to use them, I hope you can start a project with this information or solve different problems.so briefly we can say:.
  • filter() checks every element in an array to see if it meets certain criteria and returns a new array with the elements that return truthy for the criteria.You can visit the Mozilla Developer Network to learn more about iterator methods (and all other parts of JavaScript!)

Hello guys this is my second article here about front end and this time I am going to be talking about the different iterators that we have in EcmaScript6. The idea of this post is just show you some…
Continue reading “Iterators Using ES6 – Felipe Valdivia – Medium”

The 14-Point Checklist Every React Native Developer Needs In Their Toolkit

  • React Native has caught a lot of hype recently, yet the ecosystem still sort of a wild-west when it comes to tooling decisions (as with all things JavaScript).
  • If you’re just getting started with RN, or you are experienced and are about to start a new project, here are the tools I recommend that you add to your React Native repertoire:

    Thanks for checking out this article!

Supercharge your RN development with these tools!
Continue reading “The 14-Point Checklist Every React Native Developer Needs In Their Toolkit”