Skip to content

Instantly share code, notes, and snippets.

View vnglst's full-sized avatar
💭
Building 🪲

Koen van Gilst vnglst

💭
Building 🪲
View GitHub Profile
// The exact same test using async/await
describe('#getUser() using async/await', () => {
it('should load user data', async () => {
const data = await github.getUser('vnglst')
expect(data).toBeDefined()
expect(data.entity.name).toEqual('Koen van Gilst')
})
})
{
"login": "vnglst",
"id": 3457693,
"avatar_url": "https://avatars.githubusercontent.com/u/3457693?v=3",
"gravatar_id": "",
"url": "https://api.github.com/users/vnglst",
"html_url": "https://github.com/vnglst",
"followers_url": "https://api.github.com/users/vnglst/followers",
"following_url": "https://api.github.com/users/vnglst/following{/other_user}",
"gists_url": "https://api.github.com/users/vnglst/gists{/gist_id}",
@vnglst
vnglst / request.js
Created February 6, 2017 09:43
Mocked version of request.js
const fs = require('fs')
const request = (url) => new Promise((resolve, reject) => {
// Get userID from supplied url string
const lastSlash = url.lastIndexOf('/')
const userID = url.substring(lastSlash + 1)
// Load user json data from a file in de subfolder for mock data
fs.readFile(`./src/api/__mockData__/${userID}.json`, 'utf8', (err, data) => {
if (err) reject(err)
// Parse the data as JSON and put in the key entity (just like the request library does)
/* eslint-env jest */
const github = require('../github')
// A simple example test
describe('#getUser() using Promises', () => {
it('should load user data', () => {
return github.getUser('vnglst')
.then(data => {
expect(data).toBeDefined()
import request from './request'
const getUser = user => request(`https://api.github.com/users/${user}`)
export { getUser }
const rest = require('rest')
const mime = require('rest/interceptor/mime')
export default rest.wrap(mime)
@vnglst
vnglst / App.js
Last active February 6, 2017 09:06
import React, { Component } from 'react'
import './App.css'
import { getUser } from './api/github'
const renderLine = (user, key) => <li key={key}><b>{key}</b>: {user[key]}</li>
class App extends Component {
constructor (props) {
super(props)
this.state = { user: {} }
@vnglst
vnglst / ContactsApp.js
Created November 22, 2016 12:51
ReactCasts #1
// ....
import LoaderHOC from './LoaderHOC'
// ...
class ContactsApp extends Component {
// ...
}
export default LoaderHOC(ContactsApp);
@vnglst
vnglst / LoaderHOC.js
Last active November 22, 2016 15:11
ReactCasts #1
import React, { Component } from 'react';
// Returns an empty "loader" div if empty,
// Return unchanged WrappedComponent if not empty
const LoaderHOC = (WrappedComponent) => {
return class LoaderOC extends Component {
render() {
return (!this.props.question)
? <div className='loading'></div>
: <WrappedComponent {...this.props} />
@vnglst
vnglst / app.js
Last active November 3, 2016 14:37
...
var index = require('./routes/index');
var users = require('./routes/users');
var pdf = require(‘./routes/pdf’); // <-- add this line
...
app.use('/', index);
app.use('/users', users);
app.use('/pdf', pdf); // <-- add this line
...