Skip to content

Instantly share code, notes, and snippets.

View javierfernandes's full-sized avatar

Javier Fernandes javierfernandes

  • Buenos Aires, Argentina
View GitHub Profile
@javierfernandes
javierfernandes / constants.spec.js
Created March 29, 2018 21:25
Redux - truco - Test resultadoDeMano
import { resultadoDeMano, carta, Palo, ResultadoMano, cartaATexto } from './constants'
const { ESPADAS, BASTOS, OROS, COPAS } = Palo
const { GANADOR, PERDEDOR, EMPATE } = ResultadoMano
describe('modelo del truco', () => {
describe('resultadoDeMano(carta, otra)', () => {
// generador de tests
@javierfernandes
javierfernandes / Juego.jsx
Created March 29, 2018 20:18
Redux - truco - Juego con Oponente
import React from 'react'
import Ronda from '../containers/Ronda'
import Puntaje from '../containers/Puntaje'
import Oponente from '../containers/Oponente'
import './Juego.css'
export default function Juego({ onIniciarJuego, onJugarCarta }) {
return (
@javierfernandes
javierfernandes / Oponente.jsx
Created March 29, 2018 19:58
Redux - truco - Oponente (container)
import { connect } from 'react-redux'
import Oponente from '../components/Oponente'
import { jugarCarta } from '../actions/juego'
const mapActionsToProps = dispatch => ({
jugarCarta: carta => dispatch(jugarCarta(carta))
})
const mapStateToProps = state => ({
@javierfernandes
javierfernandes / Oponente.jsx
Last active March 29, 2018 21:45
Redux - truco - Oponente (componente)
import React from 'react'
import { Turno } from '../model/constants'
export default class Oponente extends React.Component {
simularJugada() {
const { turno, cartas, jugarCarta } = this.props
if (turno === Turno.ELLOS) {
setTimeout(() => {
const carta = cartas.find(c => c.jugada === undefined)
@javierfernandes
javierfernandes / juego.spec.js
Created March 29, 2018 19:13
Redux - truco - jugarCarta marca la jugada (spec)
describe('marcar jugada', () => {
it('marca la carta jugada entre las nuestras', () => {
const carta = { numero: '2', palo: 'bastos' }
const state = {
ronda: {
turno: Turno.NOSOTROS,
manos: [{}, {}, {}],
cartas: {
nosotros: [
@javierfernandes
javierfernandes / juego.spec.js
Last active March 29, 2018 18:47
Redux - truco - jugarCarta - spec carta en mano
describe('jugarCarta()', () => {
it('debe jugar la carta en la PRIMERA MANO si todavía nadie jugó', () => {
const state = {
ronda: {
manos: [{}, {}, {}]
}
}
const carta = { numero: '2', palo: 'bastos' }
const nuevoState = juego(state, jugarCarta(carta))
@javierfernandes
javierfernandes / ManoConTurno.css
Created March 29, 2018 16:06
Redux - truco - ManoConTruco (estilos)
.manoConTurno {
display: flex;
flex-direction: row;
}
.manoConTurno .turnoActual {
width: 32px;
margin-right: 1em;
}
.manoConTurno .turnoActual.habilitado {
@javierfernandes
javierfernandes / ManoConTurno.jsx
Created March 29, 2018 16:05
Redux - truco - ManoConTruco (componente)
import React from 'react'
import './ManoConTurno.css'
const ManoConTurno = ({ actual, children }) => (
<div className="manoConTurno">
<div className={`turnoActual ${actual && "habilitado"}`} />
{children}
</div>
)
@javierfernandes
javierfernandes / Ronda.jsx
Created March 29, 2018 15:57
Redux - truco - Ronda usando ManoConTurno
import React from 'react'
import Mano from './Mano.jsx'
import Mesa from './Mesa.jsx'
import ManoConTurno from './ManoConTurno.jsx'
import { Turno } from '../model/constants'
const noRonda = {
cartas: { nosotros: [], ellos: [] },
@javierfernandes
javierfernandes / Juego.jsx
Created March 29, 2018 14:19
Redux - truco - Juego (componente) usando Ronda
import React from 'react'
import Ronda from '../containers/Ronda'
import Puntaje from '../containers/Puntaje'
import { Palo, ResultadoMano } from '../model/constants'
import './Juego.css'
export default function Juego({ onIniciarJuego }) {