39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
|
/* globals test, expect, jest */
|
||
|
import { addProduct, removeProduct } from '../actions/products'
|
||
|
import { configureStore } from './store'
|
||
|
|
||
|
test('Ajout/suppression des produits', () => {
|
||
|
// On crée une instance de notre store
|
||
|
// avec le state par défaut
|
||
|
const store = configureStore()
|
||
|
|
||
|
// On crée un "faux" subscriber
|
||
|
// pour vérifier que l'état du store
|
||
|
// a bien été modifié le nombre de fois voulu
|
||
|
const subscriber = jest.fn()
|
||
|
|
||
|
// On attache notre faux subscriber
|
||
|
// au store
|
||
|
store.subscribe(subscriber)
|
||
|
|
||
|
// On "dispatch" nos actions
|
||
|
store.dispatch(addProduct('pomme', 5))
|
||
|
store.dispatch(addProduct('orange', 7))
|
||
|
store.dispatch(addProduct('orange', 10))
|
||
|
store.dispatch(removeProduct('pomme'))
|
||
|
|
||
|
// On s'assure que notre subscriber a bien été
|
||
|
// appelé
|
||
|
expect(subscriber).toHaveBeenCalledTimes(4)
|
||
|
|
||
|
const state = store.getState()
|
||
|
|
||
|
// On s'assure que l'état du store correspond
|
||
|
// à ce qu'on attend
|
||
|
expect(state).toMatchObject({
|
||
|
products: [
|
||
|
{name: 'orange', price: 7}
|
||
|
]
|
||
|
})
|
||
|
|
||
|
})
|