This is a temporary solution. Might change in the near future, this depends on how create-react-app will implement testing.
create-react-app quick-test-example
cd quick-test-example
npm run eject| // https://github.com/alfonsomunozpomer/react-fetch-mock | |
| import React from 'react' | |
| import fetchMock from 'fetch-mock' | |
| import Enzyme from 'enzyme' | |
| import {shallow, mount, render} from 'enzyme' | |
| import Adapter from 'enzyme-adapter-react-16' | |
| Enzyme.configure({ adapter: new Adapter() }) |
| echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc | |
| . ~/.bashrc | |
| mkdir ~/local | |
| mkdir ~/node-latest-install | |
| cd ~/node-latest-install | |
| curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1 | |
| ./configure --prefix=~/local | |
| make install # ok, fine, this step probably takes more than 30 seconds... | |
| curl https://www.npmjs.org/install.sh | sh |
| # | |
| # CORS header support | |
| # | |
| # One way to use this is by placing it into a file called "cors_support" | |
| # under your Nginx configuration directory and placing the following | |
| # statement inside your **location** block(s): | |
| # | |
| # include cors_support; | |
| # | |
| # As of Nginx 1.7.5, add_header supports an "always" parameter which |
| 'use strict'; | |
| const path = require('path'); | |
| const webpack = require('webpack'); | |
| const production = process.env.NODE_ENV === 'production'; | |
| const babelPlugins = ['jsx-tagclass']; | |
| const babelProdPlugins = babelPlugins.concat( | |
| ['transform-react-constant-elements', 'transform-react-inline-elements'] |
| SELECT id, x | |
| FROM ( | |
| SELECT id, x | |
| FROM test | |
| WHERE x='y' | |
| LIMIT 1 | |
| ) t1 | |
| UNION ALL | |
| SELECT id, x | |
| FROM ( |
| #!/bin/bash | |
| TMP_DIR=`mktemp --directory` | |
| LIST_FILE=$TMP_DIR/docker.list | |
| DOCKER_GROUP="docker" | |
| apt-get update | |
| apt-get install apt-transport-https ca-certificates | |
| apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D |
When using react-rails for an internationalized app it makes a lot of sense to use i18n-js for translations, so that you can reuse the the strings from your rails app's .yml files (and all the tooling & services that exist around that).
When you use the prerender feature of react-rails you face 2 problems:
translation.js & i18n.js from i18n-js need to be loaded inside the server-side JS prerendering processes, which is achieved by loading them inside the components.js.locale of each HTTP request. This is done by adding a custom renderer and using the before_render hook to configure i18n-js accordingly for each render call.| # define a method to run rake tasks | |
| def run_rake(task, options={}, &block) | |
| rake = fetch(:rake, 'rake') | |
| rails_env = fetch(:rails_env, 'production') | |
| command = "cd #{current_path} && #{rake} #{task} RAILS_ENV=#{rails_env}" | |
| run(command, options, &block) | |
| end |
| # Ignore static version of the site (used to upload error pages to S3 for Heroku errors) | |
| /out |