Skip to content

Instantly share code, notes, and snippets.

View oieduardorabelo's full-sized avatar

Eduardo Rabelo oieduardorabelo

View GitHub Profile
@oieduardorabelo
oieduardorabelo / relay-inspired-pagination.js
Last active March 7, 2019 12:39
Relay Inspired Pagination
const mockData = require("./mock-data.json");
const resolvers = {
Query: {
courses: (parent, args, context) => {
let edges = mockData;
let first = args.first;
let after = args.after;
let before = args.before;
const fs = require('fs');
const cp = require('child_process');
const testFolder = './src';
function getFiles(dir, files_ = []) {
const files = fs.readdirSync(dir);
Object.values(files).forEach((fileName) => {
const name = `${dir}/${fileName}`;
const userTiming = () => (next) => (action) => {
if (performance.mark === undefined) return next(action);
performance.mark(`${action.type}_start`);
const result = next(action);
performance.mark(`${action.type}_end`);
performance.measure(
`${action.type}`,
`${action.type}_start`,
`${action.type}_end`,
);
// ts 3.x
// https://stackoverflow.com/questions/54129289/typescript-call-a-member-of-an-object-with-arguments
let fns = {
set: (foo: string, bar: string) => {
return { foo, bar };
}
};
function callMethodWithArgs<
FnsObj extends { [key in MethodKey]: (...args: any[]) => any },
@oieduardorabelo
oieduardorabelo / react-redux.ts
Created December 19, 2018 13:07
Module mock in Jest using `react-redux/connect` as example
const connect = jest.fn((mapStateToProps) => {
const React = require.requireActual('react');
const { rootReducer } = require.requireActual('../domains/root.reducer');
const state = rootReducer({}, { type: '__jest-mock-react-redux__' });
const fromConnectProps = mapStateToProps(state);
return jest.fn(Component => {
function Wrapper(props: any) {
const finalProps = { ...props, ...fromConnectProps };
const React = require('react');
const ReactDOM = require('react-dom/server');
const { renderStatic } = require('glamor/server');
const http = require('http');
const Component = require('....');
const props = {}
const yolo = React.createElement(Component, props);
@oieduardorabelo
oieduardorabelo / TicTacToe.js
Created November 23, 2017 17:13
Exemplo final para o artigo - Flow: Criando um Jogo da Velha, 2 de 2
// @flow
import * as React from "react";
import { render } from "react-dom";
type Circle = { type: "Circle" };
type Cross = { type: "Cross" };
type Empty = { type: "Empty" };
type CellType = Circle | Cross | Empty;
// algumas referências a elementos DOM
const input = document.querySelector('.js-input');
const p1 = document.querySelector('.js-p1');
const p2 = document.querySelector('.js-p2');
const p3 = document.querySelector('.js-p3');
// algumas ações para adicionar ao array de observadores
const updateP1 = text => p1.textContent = text;
const updateP2 = text => p2.textContent = text;
const updateP3 = text => p3.textContent = text;
// definimos a classe
class Observable {
// cada instância da classe Observer
// começa com um array vazio de observadores/observers
// que reagem a uma mudança de estado
constructor() {
this.observers = [];
}
// adicione a capacidade de inscrever um novo objeto / Elemento DOM
@oieduardorabelo
oieduardorabelo / Field-test.jsx
Last active June 16, 2017 10:11 — forked from stipsan/Field-test.jsx
Testando com Jest: Dica #15
import renderer from 'react-test-renderer'
import Field from '../Field'
// esse módulo no import é criado pelo seu mock global, apenas para ajudar nos testes
// e não existe no módulo real do react-intl
import { intl } from 'react-intl'
it('should render correctly', () => {
const component = renderer.create(<Field intl={intl} />)
expect(component.toJSON()).toMatchSnapshot()