61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
import { shallowMount } from '@vue/test-utils'
|
|
|
|
import MembersList from '../members_list'
|
|
|
|
describe('MembersList', () => {
|
|
const members = [
|
|
{
|
|
name: 'Luke Skywalker',
|
|
num_env: 2,
|
|
status: 'active',
|
|
role: 'developer',
|
|
},
|
|
{
|
|
name: 'Chewie',
|
|
num_env: 3,
|
|
status: 'pending',
|
|
role: 'admin',
|
|
},
|
|
]
|
|
const role_choices = [
|
|
{ display_name: 'Developer', name: 'developer' },
|
|
{ display_name: 'Admin', name: 'admin' },
|
|
]
|
|
const status_choices = [
|
|
{ display_name: 'Active', name: 'active' },
|
|
{ display_name: 'Pending', name: 'pending' },
|
|
]
|
|
|
|
const createWrapper = () =>
|
|
shallowMount(MembersList, {
|
|
propsData: {
|
|
members,
|
|
role_choices,
|
|
status_choices,
|
|
},
|
|
})
|
|
|
|
it('should sort by name by default', () => {
|
|
const wrapper = createWrapper()
|
|
const listedMembers = wrapper.vm.searchedList
|
|
const memberNames = listedMembers.map(member => member.name)
|
|
expect(memberNames).toEqual(['Chewie', 'Luke Skywalker'])
|
|
})
|
|
|
|
it('should reverse sort by name when updated with Name', () => {
|
|
const wrapper = createWrapper()
|
|
wrapper.vm.updateSort('Name')
|
|
const listedMembers = wrapper.vm.searchedList
|
|
const memberNames = listedMembers.map(member => member.name)
|
|
expect(memberNames).toEqual(['Luke Skywalker', 'Chewie'])
|
|
})
|
|
|
|
it('should sort by number of environments when environments selected', () => {
|
|
const wrapper = createWrapper()
|
|
wrapper.vm.updateSort('Environments')
|
|
const listedMembers = wrapper.vm.searchedList
|
|
const memberEnvs = listedMembers.map(member => member.num_env)
|
|
expect(memberEnvs).toEqual([2, 3])
|
|
})
|
|
})
|