Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • pleroma/admin-fe
  • linafilippova/admin-fe
  • Exilat_a_Tolosa/admin-fe
  • mkljczk/admin-fe
  • maxf/admin-fe
  • kphrx/admin-fe
  • vaartis/admin-fe
  • ELR/admin-fe
  • eugenijm/admin-fe
  • jp/admin-fe
  • mkfain/admin-fe
  • lorenzoancora/admin-fe
  • alexgleason/admin-fe
  • seanking/admin-fe
  • ilja/admin-fe
15 results
Show changes
import Vuex from 'vuex'
import { mount, createLocalVue, config } from '@vue/test-utils'
import Element from 'element-ui'
import Status from '@/components/Status'
import storeConfig from './store.conf'
import { cloneDeep } from 'lodash'
import flushPromises from 'flush-promises'
config.mocks["$t"] = () => {}
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Element)
jest.mock('@/api/reports')
jest.mock('@/api/status')
describe('Status in reports', () => {
let store
beforeEach(async() => {
store = new Vuex.Store(cloneDeep(storeConfig))
store.dispatch('FetchReports', 1)
await flushPromises()
})
it('adds sensitive flag to a status', async (done) => {
const status = store.state.reports.fetchedReports[4].statuses[0]
const wrapper = mount(Status, {
store,
localVue,
propsData: {
status,
page: 1,
userId: '7',
godmode: false,
showCheckbox: false
}
})
await flushPromises()
const changeStatusStub = jest.fn()
wrapper.setMethods({ changeStatus: changeStatusStub })
const button = wrapper.find(`li.el-dropdown-menu__item:nth-child(1)`)
button.trigger('click')
expect(wrapper.vm.changeStatus).toHaveBeenCalled()
expect(wrapper.vm.changeStatus).toHaveBeenCalledWith('11', true, 'public')
done()
})
it('removes sensitive flag to a status', async (done) => {
const status = store.state.reports.fetchedReports[4].statuses[1]
const wrapper = mount(Status, {
store,
localVue,
propsData: {
status,
page: 1,
userId: '7',
godmode: false,
showCheckbox: false
}
})
await flushPromises()
const changeStatusStub = jest.fn()
wrapper.setMethods({ changeStatus: changeStatusStub })
const button = wrapper.find(`li.el-dropdown-menu__item:nth-child(1)`)
button.trigger('click')
expect(wrapper.vm.changeStatus).toHaveBeenCalled()
expect(wrapper.vm.changeStatus).toHaveBeenCalledWith('10', false, 'unlisted')
done()
})
it('changes status visibility from public to unlisted', async (done) => {
const status = store.state.reports.fetchedReports[4].statuses[0]
const wrapper = mount(Status, {
store,
localVue,
propsData: {
status,
page: 1,
userId: '7',
godmode: false,
showCheckbox: false
}
})
await flushPromises()
const changeStatusStub = jest.fn()
wrapper.setMethods({ changeStatus: changeStatusStub })
const button = wrapper.find(`li.el-dropdown-menu__item:nth-child(3)`)
button.trigger('click')
expect(wrapper.vm.changeStatus).toHaveBeenCalled()
expect(wrapper.vm.changeStatus).toHaveBeenCalledWith('11', false, 'unlisted')
done()
})
it('changes status visibility from unlisted to private', async (done) => {
const status = store.state.reports.fetchedReports[4].statuses[1]
const wrapper = mount(Status, {
store,
localVue,
propsData: {
status,
page: 1,
userId: '7',
godmode: false,
showCheckbox: false
}
})
await flushPromises()
const changeStatusStub = jest.fn()
wrapper.setMethods({ changeStatus: changeStatusStub })
const button = wrapper.find(`li.el-dropdown-menu__item:nth-child(3)`)
button.trigger('click')
expect(wrapper.vm.changeStatus).toHaveBeenCalled()
expect(wrapper.vm.changeStatus).toHaveBeenCalledWith('10', true, 'private')
done()
})
it('deletes a status', async (done) => {
const status = store.state.reports.fetchedReports[4].statuses[1]
const wrapper = mount(Status, {
store,
localVue,
propsData: {
status,
page: 1,
userId: '7',
godmode: false,
showCheckbox: false
}
})
await flushPromises()
const deleteStatusStub = jest.fn()
wrapper.setMethods({ deleteStatus: deleteStatusStub })
const button = wrapper.find(`li.el-dropdown-menu__item:nth-child(4)`)
button.trigger('click')
expect(wrapper.vm.deleteStatus).toHaveBeenCalled()
expect(wrapper.vm.deleteStatus).toHaveBeenCalledWith('10')
done()
})
})
......@@ -47,6 +47,20 @@ describe('Form search object', () => {
"filters",
"list of filter modules for uploads"
]
},
{
groupKey: ':instance_panel',
groupLabel: 'Instance Panel',
key: ':instance_panel',
label: 'Instance Panel',
search: ['Instance Panel', ':instance_panel']
},
{
groupKey: ':terms_of_services',
groupLabel: 'Terms of Services',
key: ':terms_of_services',
label: 'Terms of Services',
search: ['Terms of Services', ':terms_of_services']
}
]
expect(_.isEqual(formSearchObject(description), expected)).toBeTruthy()
......@@ -81,6 +95,20 @@ describe('Form search object', () => {
"serve mailbox",
"run the preview server together as part of your app"
]
},
{
groupKey: ':instance_panel',
groupLabel: 'Instance Panel',
key: ':instance_panel',
label: 'Instance Panel',
search: ['Instance Panel', ':instance_panel']
},
{
groupKey: ':terms_of_services',
groupLabel: 'Terms of Services',
key: ':terms_of_services',
label: 'Terms of Services',
search: ['Terms of Services', ':terms_of_services']
}
]
expect(_.isEqual(formSearchObject(description), expected)).toBeTruthy()
......@@ -115,6 +143,20 @@ describe('Form search object', () => {
groupKey: ":cors_plug",
groupLabel: "Cors plug",
search: [":methods", "methods"]
},
{
groupKey: ':instance_panel',
groupLabel: 'Instance Panel',
key: ':instance_panel',
label: 'Instance Panel',
search: ['Instance Panel', ':instance_panel']
},
{
groupKey: ':terms_of_services',
groupLabel: 'Terms of Services',
key: ':terms_of_services',
label: 'Terms of Services',
search: ['Terms of Services', ':terms_of_services']
}
]
expect(_.isEqual(formSearchObject(description), expected)).toBeTruthy()
......@@ -137,6 +179,20 @@ describe('Form search object', () => {
groupKey: ":pleroma",
groupLabel: "Pleroma",
search: [":admin_token", "admin token", "token"]
},
{
groupKey: ':instance_panel',
groupLabel: 'Instance Panel',
key: ':instance_panel',
label: 'Instance Panel',
search: ['Instance Panel', ':instance_panel']
},
{
groupKey: ':terms_of_services',
groupLabel: 'Terms of Services',
key: ':terms_of_services',
label: 'Terms of Services',
search: ['Terms of Services', ':terms_of_services']
}]
expect(_.isEqual(formSearchObject(description), expected)).toBeTruthy()
})
......@@ -206,6 +262,19 @@ describe('Form search object', () => {
groupKey: ":media_proxy",
groupLabel: "Media proxy",
search: [":ssl_options", "ssl options", "ssl options for http adapter"]
},
{
groupKey: ':instance_panel',
groupLabel: 'Instance Panel',
key: ':instance_panel',
label: 'Instance Panel',
search: ['Instance Panel', ':instance_panel']
}, {
groupKey: ':terms_of_services',
groupLabel: 'Terms of Services',
key: ':terms_of_services',
label: 'Terms of Services',
search: ['Terms of Services', ':terms_of_services']
}
]
expect(_.isEqual(formSearchObject(description), expected)).toBeTruthy()
......
......@@ -5,6 +5,7 @@ import Settings from '@/views/settings/index'
import flushPromises from 'flush-promises'
import app from '@/store/modules/app'
import settings from '@/store/modules/settings'
import user from '@/store/modules/user'
import getters from '@/store/getters'
config.mocks["$t"] = () => {}
......@@ -13,6 +14,10 @@ const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Element)
jest.mock('@/api/app')
jest.mock('@/api/nodeInfo')
jest.mock('@/api/settings')
describe('Settings search', () => {
let store
let actions
......@@ -24,7 +29,8 @@ describe('Settings search', () => {
store = new Vuex.Store({
modules: {
app: { ...app, actions: appActions },
settings: { ...settings, actions }
settings: { ...settings, actions },
user: { ...user, state: { ...user.state, authHost: 'localhost:4000' }}
},
getters
})
......
......@@ -7,15 +7,17 @@ import storeConfig from './store.conf'
import { cloneDeep } from 'lodash'
config.mocks["$t"] = () => {}
config.stubs.transition = false
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Element)
jest.mock('@/api/app')
jest.mock('@/api/status')
jest.mock('@/api/peers')
jest.mock('@/api/nodeInfo')
jest.mock('@/api/peers')
jest.mock('@/api/settings')
jest.mock('@/api/status')
describe('Statuses', () => {
let store
......
......@@ -7,15 +7,17 @@ import storeConfig from './storeForPagination.conf'
import { cloneDeep } from 'lodash'
config.mocks["$t"] = () => {}
config.stubs.transition = false
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Element)
jest.mock('@/api/app')
jest.mock('@/api/status')
jest.mock('@/api/peers')
jest.mock('@/api/nodeInfo')
jest.mock('@/api/peers')
jest.mock('@/api/settings')
jest.mock('@/api/status')
describe('Statuses', () => {
let store
......
import Vuex from 'vuex'
import { mount, createLocalVue, config } from '@vue/test-utils'
import { mount, createLocalVue, config, RouterLinkStub } from '@vue/test-utils'
import flushPromises from 'flush-promises'
import Element from 'element-ui'
import StatusShow from '@/views/statuses/show'
......@@ -7,6 +7,7 @@ import storeConfig from './statusShowStore.conf'
import { cloneDeep } from 'lodash'
config.mocks["$t"] = () => {}
config.stubs.transition = false
const localVue = createLocalVue()
localVue.use(Vuex)
......@@ -19,9 +20,10 @@ const $route = {
}
jest.mock('@/api/app')
jest.mock('@/api/status')
jest.mock('@/api/peers')
jest.mock('@/api/nodeInfo')
jest.mock('@/api/peers')
jest.mock('@/api/settings')
jest.mock('@/api/status')
jest.mock('@/api/users')
describe('Status show page', () => {
......@@ -36,7 +38,9 @@ describe('Status show page', () => {
store,
localVue,
sync: false,
stubs: ['router-link'],
stubs: {
RouterLink: RouterLinkStub
},
mocks: {
$route
}
......@@ -55,14 +59,16 @@ describe('Status show page', () => {
store,
localVue,
sync: false,
stubs: ['router-link'],
stubs: {
RouterLink: RouterLinkStub
},
mocks: {
$route
}
})
await flushPromises()
expect(wrapper.find('router-link-stub h1').text()).toBe('dolin')
expect(wrapper.findComponent(RouterLinkStub).find('h1').text()).toBe('dolin')
expect(wrapper.find('button.moderate-user-button').exists()).toBe(true)
expect(wrapper.find('.el-dropdown-menu').exists()).toBe(true)
done()
......@@ -73,7 +79,9 @@ describe('Status show page', () => {
store,
localVue,
sync: false,
stubs: ['router-link'],
stubs: {
RouterLink: RouterLinkStub
},
mocks: {
$route
}
......@@ -81,7 +89,7 @@ describe('Status show page', () => {
await flushPromises()
expect(wrapper.find('.status-card').exists()).toBe(true)
expect(wrapper.find('router-link-stub span.status-account-name').text()).toBe('dolin')
expect(wrapper.findAllComponents(RouterLinkStub).at(1).find('span.status-account-name').text()).toBe('dolin')
expect(wrapper.find('span.el-tag').text()).not.toBe('Sensitive')
expect(wrapper.find('span.el-tag').text()).toBe('Public')
expect(wrapper.find('button.status-actions-button').exists()).toBe(true)
......
import app from '@/store/modules/app'
import peers from '@/store/modules/peers'
import user from '@/store/modules/user'
import users from '@/store/modules/users'
import settings from '@/store/modules/settings'
import status from '@/store/modules/status'
import getters from '@/store/getters'
......@@ -11,7 +12,8 @@ export default {
peers,
settings,
status,
user: { ...user, state: { ...user.state, authHost: 'localhost:4000' }}
user: { ...user, state: { ...user.state, authHost: 'localhost:4000' }},
users
},
getters
}
import Vuex from 'vuex'
import { mount, createLocalVue, config } from '@vue/test-utils'
import { mount, createLocalVue, config, RouterLinkStub } from '@vue/test-utils'
import flushPromises from 'flush-promises'
import Element from 'element-ui'
import Users from '@/views/users/index'
import NewAccountDialog from '@/views/users/components/NewAccountDialog'
import storeConfig from './store.conf'
import { storeConfig } from './store.conf'
import { cloneDeep } from 'lodash'
config.mocks["$t"] = () => {}
config.stubs['users-filter'] = '<div />'
config.stubs['users-filter'] = { template: '<div />'}
config.stubs.transition = false
const localVue = createLocalVue()
localVue.use(Vuex)
......@@ -17,6 +18,7 @@ localVue.use(Element)
jest.mock('@/api/app')
jest.mock('@/api/nodeInfo')
jest.mock('@/api/users')
jest.mock('@/api/settings')
describe('Search and filter users', () => {
let store
......@@ -30,7 +32,9 @@ describe('Search and filter users', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -43,7 +47,9 @@ describe('Search and filter users', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
wrapper.vm.handleDebounceSearchInput = (query) => {
......@@ -81,7 +87,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -100,7 +108,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -119,7 +129,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -135,7 +147,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -153,7 +167,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
expect(store.state.users.fetchedUsers[1].deactivated).toBe(false)
......@@ -171,7 +187,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -195,7 +213,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -213,7 +233,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -238,7 +260,9 @@ describe('Users actions', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -277,7 +301,9 @@ describe('Creates new account', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......@@ -301,7 +327,9 @@ describe('Creates new account', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
expect(wrapper.vm.usersCount).toEqual(4)
......@@ -335,7 +363,9 @@ describe('Creates new account', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
const validateEmailRule = { validator: wrapper.vm.validateEmail, field: 'email', fullField: 'email', type: 'string' }
......@@ -360,7 +390,9 @@ describe('Creates new account', () => {
store,
localVue,
sync: false,
stubs: ['router-link']
stubs: {
RouterLink: RouterLinkStub
}
})
await flushPromises()
......
import Vuex from 'vuex'
import { mount, createLocalVue, config } from '@vue/test-utils'
import Element from 'element-ui'
import MultipleUsersMenu from '@/views/users/components/MultipleUsersMenu'
import storeConfig from './store.conf'
import { cloneDeep } from 'lodash'
import flushPromises from 'flush-promises'
import { users } from '@/api/__mocks__/users.js'
config.mocks["$t"] = () => {}
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Element)
jest.mock('@/api/nodeInfo')
jest.mock('@/api/users')
describe('Apply users actions to multiple users', () => {
let store
beforeEach(async() => {
store = new Vuex.Store(cloneDeep(storeConfig))
store.dispatch('FetchUsers', { page: 1 })
await flushPromises()
})
it('grants admin rights to multiple users', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const grantRightToMultipleUsersStub = jest.fn()
wrapper.setMethods({ grantRightToMultipleUsers: grantRightToMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(1)`).trigger('click')
expect(wrapper.vm.grantRightToMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.grantRightToMultipleUsers).toHaveBeenCalledWith('admin')
const grantRight = wrapper.vm.mappers().grantRight
const user1 = store.state.users.fetchedUsers[0]
const user2 = store.state.users.fetchedUsers[1]
const user3 = store.state.users.fetchedUsers[2]
expect(user1.roles.admin).toBe(true)
expect(user2.roles.admin).toBe(false)
expect(user3.roles.admin).toBe(false)
grantRight('admin')()
const updatedUser1 = store.state.users.fetchedUsers[0]
const updatedUser2 = store.state.users.fetchedUsers[1]
const updatedUser3 = store.state.users.fetchedUsers[2]
expect(updatedUser1.roles.admin).toBe(true)
expect(updatedUser2.roles.admin).toBe(false)
expect(updatedUser3.roles.admin).toBe(true)
done()
})
it('grants moderator rights to multiple users', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const grantRightToMultipleUsersStub = jest.fn()
wrapper.setMethods({ grantRightToMultipleUsers: grantRightToMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(3)`).trigger('click')
expect(wrapper.vm.grantRightToMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.grantRightToMultipleUsers).toHaveBeenCalledWith('moderator')
const grantRight = wrapper.vm.mappers().grantRight
const user1 = store.state.users.fetchedUsers[0]
const user2 = store.state.users.fetchedUsers[1]
const user3 = store.state.users.fetchedUsers[2]
expect(user1.roles.moderator).toBe(false)
expect(user2.roles.moderator).toBe(false)
expect(user3.roles.moderator).toBe(false)
grantRight('moderator')()
const updatedUser1 = store.state.users.fetchedUsers[0]
const updatedUser2 = store.state.users.fetchedUsers[1]
const updatedUser3 = store.state.users.fetchedUsers[2]
expect(updatedUser1.roles.moderator).toBe(true)
expect(updatedUser2.roles.moderator).toBe(false)
expect(updatedUser3.roles.moderator).toBe(true)
done()
})
it('revokes admin rights from multiple users', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const revokeRightFromMultipleUsersStub = jest.fn()
wrapper.setMethods({ revokeRightFromMultipleUsers: revokeRightFromMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(2)`).trigger('click')
expect(wrapper.vm.revokeRightFromMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.revokeRightFromMultipleUsers).toHaveBeenCalledWith('admin')
const revokeRight = wrapper.vm.mappers().revokeRight
const user1 = store.state.users.fetchedUsers[0]
const user2 = store.state.users.fetchedUsers[2]
expect(user1.roles.admin).toBe(true)
expect(user2.roles.admin).toBe(false)
revokeRight('admin')()
const updatedUser1 = store.state.users.fetchedUsers[0]
const updatedUser2 = store.state.users.fetchedUsers[2]
expect(updatedUser1.roles.admin).toBe(false)
expect(updatedUser2.roles.admin).toBe(false)
done()
})
it('calls a function that revokes moderator rights from multiple users', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const revokeRightFromMultipleUsersStub = jest.fn()
wrapper.setMethods({ revokeRightFromMultipleUsers: revokeRightFromMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(4)`).trigger('click')
expect(wrapper.vm.revokeRightFromMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.revokeRightFromMultipleUsers).toHaveBeenCalledWith('moderator')
done()
})
it('activates multiple accounts', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const activateMultipleUsersStub = jest.fn()
wrapper.setMethods({ activateMultipleUsers: activateMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(9)`).trigger('click')
expect(wrapper.vm.activateMultipleUsers).toHaveBeenCalled()
const activate = wrapper.vm.mappers().activate
const user = store.state.users.fetchedUsers[2]
expect(user.deactivated).toBe(true)
activate()
const updatedUser = store.state.users.fetchedUsers[2]
expect(updatedUser.deactivated).toBe(false)
done()
})
it('deactivates multiple accounts', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const deactivateMultipleUsersStub = jest.fn()
wrapper.setMethods({ deactivateMultipleUsers: deactivateMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(10)`).trigger('click')
expect(wrapper.vm.deactivateMultipleUsers).toHaveBeenCalled()
const deactivate = wrapper.vm.mappers().deactivate
const user1 = store.state.users.fetchedUsers[0]
const user2 = store.state.users.fetchedUsers[1]
expect(user1.deactivated).toBe(false)
expect(user2.deactivated).toBe(false)
deactivate()
const updatedUser1 = store.state.users.fetchedUsers[0]
const updatedUser2 = store.state.users.fetchedUsers[1]
expect(updatedUser1.deactivated).toBe(true)
expect(updatedUser2.deactivated).toBe(true)
done()
})
it('deletes multiple accounts', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const deleteMultipleUsersStub = jest.fn()
wrapper.setMethods({ deleteMultipleUsers: deleteMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(11)`).trigger('click')
expect(wrapper.vm.deleteMultipleUsers).toHaveBeenCalled()
const remove = wrapper.vm.mappers().remove
expect(store.state.users.fetchedUsers.filter(user => user.deactivated).length).toEqual(1)
remove()
await flushPromises()
expect(store.state.users.fetchedUsers.length).toEqual(4)
done()
})
it('applies tags for multiple accounts', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const addTagForMultipleUsersStub = jest.fn()
wrapper.setMethods({ addTagForMultipleUsers: addTagForMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(13) button:nth-child(1)`).trigger('click')
expect(wrapper.vm.addTagForMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.addTagForMultipleUsers).toHaveBeenCalledWith('mrf_tag:media-force-nsfw')
wrapper.find(`.el-dropdown-menu__item:nth-child(15) button:nth-child(1)`).trigger('click')
expect(wrapper.vm.addTagForMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.addTagForMultipleUsers).toHaveBeenCalledWith('mrf_tag:force-unlisted')
wrapper.find(`.el-dropdown-menu__item:nth-child(17) button:nth-child(1)`).trigger('click')
expect(wrapper.vm.addTagForMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.addTagForMultipleUsers).toHaveBeenCalledWith('mrf_tag:disable-remote-subscription')
const addTag = wrapper.vm.mappers().addTag
const user1 = store.state.users.fetchedUsers[0]
const user2 = store.state.users.fetchedUsers[1]
expect(user1.tags.length).toBe(0)
expect(user2.tags.length).toBe(1)
addTag('mrf_tag:media-strip')()
const updatedUser1 = store.state.users.fetchedUsers[0]
const updatedUser2 = store.state.users.fetchedUsers[1]
expect(updatedUser1.tags.length).toBe(1)
expect(updatedUser2.tags.length).toBe(2)
done()
})
it('removes tags from multiple accounts', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const removeTagFromMultipleUsersStub = jest.fn()
wrapper.setMethods({ removeTagFromMultipleUsers: removeTagFromMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(14) button:nth-child(2)`).trigger('click')
expect(wrapper.vm.removeTagFromMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.removeTagFromMultipleUsers).toHaveBeenCalledWith('mrf_tag:media-strip')
wrapper.find(`.el-dropdown-menu__item:nth-child(16) button:nth-child(2)`).trigger('click')
expect(wrapper.vm.removeTagFromMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.removeTagFromMultipleUsers).toHaveBeenCalledWith('mrf_tag:sandbox')
wrapper.find(`.el-dropdown-menu__item:nth-child(18) button:nth-child(2)`).trigger('click')
expect(wrapper.vm.removeTagFromMultipleUsers).toHaveBeenCalled()
expect(wrapper.vm.removeTagFromMultipleUsers).toHaveBeenCalledWith('mrf_tag:disable-any-subscription')
const removeTag = wrapper.vm.mappers().removeTag
const user1 = store.state.users.fetchedUsers[1]
const user2 = store.state.users.fetchedUsers[2]
expect(user1.tags.length).toBe(1)
expect(user2.tags.length).toBe(1)
removeTag('mrf_tag:media-strip')()
const updatedUser1 = store.state.users.fetchedUsers[1]
const updatedUser2 = store.state.users.fetchedUsers[2]
expect(updatedUser1.tags.length).toBe(1)
expect(updatedUser2.tags.length).toBe(0)
done()
})
it('approves multiple accounts', async (done) => {
const wrapper = mount(MultipleUsersMenu, {
store,
localVue,
sync: false,
propsData: {
selectedUsers: users
}
})
await flushPromises()
const approveAccountsForMultipleUsersStub = jest.fn()
wrapper.setMethods({ approveAccountsForMultipleUsers: approveAccountsForMultipleUsersStub })
wrapper.find(`.el-dropdown-menu__item:nth-child(5)`).trigger('click')
expect(wrapper.vm.approveAccountsForMultipleUsers).toHaveBeenCalled()
const approveAccounts = wrapper.vm.mappers().approveAccounts
const user1 = store.state.users.fetchedUsers[0]
const user2 = store.state.users.fetchedUsers[3]
expect(user1.approval_pending).toBe(false)
expect(user2.approval_pending).toBe(true)
approveAccounts()
const updatedUser1 = store.state.users.fetchedUsers[0]
const updatedUser2 = store.state.users.fetchedUsers[3]
expect(updatedUser1.approval_pending).toBe(false)
expect(updatedUser2.approval_pending).toBe(false)
done()
})
})
import Vuex from 'vuex'
import { mount, createLocalVue, config } from '@vue/test-utils'
import { mount, createLocalVue, config, RouterLinkStub } from '@vue/test-utils'
import flushPromises from 'flush-promises'
import Element from 'element-ui'
import UsersShow from '@/views/users/show'
import storeConfig from './store.conf'
import { storeConfig } from './store.conf'
import { cloneDeep } from 'lodash'
config.mocks["$t"] = () => {}
config.stubs.transition = false
const localVue = createLocalVue()
localVue.use(Vuex)
......@@ -18,8 +19,10 @@ const $route = {
}
}
jest.mock('@/api/app')
jest.mock('@/api/nodeInfo')
jest.mock('@/api/users')
jest.mock('@/api/settings')
describe('User profile', () => {
let store
......@@ -33,7 +36,9 @@ describe('User profile', () => {
store,
localVue,
sync: false,
stubs: ['router-link'],
stubs: {
RouterLink: RouterLinkStub
},
mocks: {
$route
}
......
......@@ -5,7 +5,7 @@ import userProfile from '@/store/modules/userProfile'
import users from '@/store/modules/users'
import getters from '@/store/getters'
export default {
export const storeConfig = {
modules: {
app,
settings,
......@@ -15,3 +15,14 @@ export default {
},
getters
}
export const storeWithTagPolicy = {
modules: {
app,
settings,
user,
userProfile,
users: { ...users, state: { ...users.state, mrfPolicies: ['Pleroma.Web.ActivityPub.MRF.TagPolicy'] }}
},
getters
}
......@@ -2,7 +2,7 @@ import Vuex from 'vuex'
import { mount, createLocalVue, config } from '@vue/test-utils'
import Element from 'element-ui'
import Filters from '@/views/users/components/UsersFilter'
import storeConfig from './store.conf'
import { storeConfig } from './store.conf'
import { cloneDeep } from 'lodash'
import flushPromises from 'flush-promises'
......@@ -13,7 +13,9 @@ const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(Element)
jest.mock('@/api/app')
jest.mock('@/api/nodeInfo')
jest.mock('@/api/settings')
jest.mock('@/api/users')
describe('Filters users', () => {
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.