users.spec.js (3419B)
- import { cloneDeep } from 'lodash'
- import { defaultState, mutations, getters } from '../../../../src/modules/users.js'
- describe('The users module', () => {
- describe('mutations', () => {
- it('adds new users to the set, merging in new information for old users', () => {
- const state = cloneDeep(defaultState)
- const user = { id: '1', name: 'Guy' }
- const modUser = { id: '1', name: 'Dude' }
- mutations.addNewUsers(state, [user])
- expect(state.users).to.have.length(1)
- expect(state.users).to.eql([user])
- mutations.addNewUsers(state, [modUser])
- expect(state.users).to.have.length(1)
- expect(state.users).to.eql([user])
- expect(state.users[0].name).to.eql('Dude')
- })
- it('merging array field in new information for old users', () => {
- const state = cloneDeep(defaultState)
- const user = {
- id: '1',
- fields: [
- { name: 'Label 1', value: 'Content 1' }
- ]
- }
- const firstModUser = {
- id: '1',
- fields: [
- { name: 'Label 2', value: 'Content 2' },
- { name: 'Label 3', value: 'Content 3' }
- ]
- }
- const secondModUser = {
- id: '1',
- fields: [
- { name: 'Label 4', value: 'Content 4' }
- ]
- }
- mutations.addNewUsers(state, [user])
- expect(state.users[0].fields).to.have.length(1)
- expect(state.users[0].fields[0].name).to.eql('Label 1')
- mutations.addNewUsers(state, [firstModUser])
- expect(state.users[0].fields).to.have.length(2)
- expect(state.users[0].fields[0].name).to.eql('Label 2')
- expect(state.users[0].fields[1].name).to.eql('Label 3')
- mutations.addNewUsers(state, [secondModUser])
- expect(state.users[0].fields).to.have.length(1)
- expect(state.users[0].fields[0].name).to.eql('Label 4')
- })
- })
- describe('findUser', () => {
- it('does not return user with matching screen_name', () => {
- const user = { screen_name: 'Guy', id: '1' }
- const state = {
- usersObject: {
- 1: user
- },
- usersByNameObject: {
- guy: user
- }
- }
- const name = 'Guy'
- expect(getters.findUser(state)(name)).to.eql(undefined)
- })
- it('returns user with matching id', () => {
- const user = { screen_name: 'Guy', id: '1' }
- const state = {
- usersObject: {
- 1: user
- },
- usersByNameObject: {
- guy: user
- }
- }
- const id = '1'
- const expected = { screen_name: 'Guy', id: '1' }
- expect(getters.findUser(state)(id)).to.eql(expected)
- })
- })
- describe('findUserByName', () => {
- it('returns user with matching screen_name', () => {
- const user = { screen_name: 'Guy', id: '1' }
- const state = {
- usersObject: {
- 1: user
- },
- usersByNameObject: {
- guy: user
- }
- }
- const name = 'Guy'
- const expected = { screen_name: 'Guy', id: '1' }
- expect(getters.findUserByName(state)(name)).to.eql(expected)
- })
- it('does not return user with matching id', () => {
- const user = { screen_name: 'Guy', id: '1' }
- const state = {
- usersObject: {
- 1: user
- },
- usersByNameObject: {
- guy: user
- }
- }
- const id = '1'
- expect(getters.findUserByName(state)(id)).to.eql(undefined)
- })
- })
- })