user_profile.spec.js (4674B)
- import { mount } from '@vue/test-utils'
- import { createStore } from 'vuex'
- import UserProfile from 'src/components/user_profile/user_profile.vue'
- import backendInteractorService from 'src/services/backend_interactor_service/backend_interactor_service.js'
- import { getters } from 'src/modules/users.js'
- const mutations = {
- clearTimeline: () => {}
- }
- const actions = {
- fetchUser: () => {},
- fetchUserByScreenName: () => {}
- }
- const testGetters = {
- findUser: state => getters.findUser(state.users),
- findUserByName: state => getters.findUserByName(state.users),
- relationship: state => getters.relationship(state.users),
- mergedConfig: state => ({
- colors: '',
- highlight: {},
- customTheme: {
- colors: []
- }
- })
- }
- const localUser = {
- id: 100,
- is_local: true,
- screen_name: 'testUser',
- screen_name_ui: 'testUser'
- }
- const extUser = {
- id: 100,
- is_local: false,
- screen_name: 'testUser@test.instance',
- screen_name_ui: 'testUser@test.instance'
- }
- const externalProfileStore = createStore({
- mutations,
- actions,
- getters: testGetters,
- state: {
- api: {
- fetchers: {},
- backendInteractor: backendInteractorService('')
- },
- interface: {
- browserSupport: ''
- },
- instance: {
- hideUserStats: true
- },
- statuses: {
- timelines: {
- user: {
- statuses: [],
- statusesObject: {},
- faves: [],
- visibleStatuses: [],
- visibleStatusesObject: {},
- newStatusCount: 0,
- maxId: 0,
- minVisibleId: 0,
- loading: false,
- followers: [],
- friends: [],
- viewing: 'statuses',
- userId: 100,
- flushMarker: 0
- },
- media: {
- statuses: [],
- statusesObject: {},
- faves: [],
- visibleStatuses: [],
- visibleStatusesObject: {},
- newStatusCount: 0,
- maxId: 0,
- minVisibleId: 0,
- loading: false,
- followers: [],
- friends: [],
- viewing: 'statuses',
- userId: 100,
- flushMarker: 0
- }
- }
- },
- users: {
- currentUser: {
- credentials: ''
- },
- usersObject: { 100: extUser },
- usersByNameObject: {},
- users: [extUser],
- relationships: {}
- }
- }
- })
- const localProfileStore = createStore({
- mutations,
- actions,
- getters: testGetters,
- state: {
- api: {
- fetchers: {},
- backendInteractor: backendInteractorService('')
- },
- interface: {
- browserSupport: ''
- },
- config: {
- colors: '',
- highlight: {},
- customTheme: {
- colors: []
- }
- },
- instance: {
- hideUserStats: true
- },
- statuses: {
- timelines: {
- user: {
- statuses: [],
- statusesObject: {},
- faves: [],
- visibleStatuses: [],
- visibleStatusesObject: {},
- newStatusCount: 0,
- maxId: 0,
- minVisibleId: 0,
- loading: false,
- followers: [],
- friends: [],
- viewing: 'statuses',
- userId: 100,
- flushMarker: 0
- },
- media: {
- statuses: [],
- statusesObject: {},
- faves: [],
- visibleStatuses: [],
- visibleStatusesObject: {},
- newStatusCount: 0,
- maxId: 0,
- minVisibleId: 0,
- loading: false,
- followers: [],
- friends: [],
- viewing: 'statuses',
- userId: 100,
- flushMarker: 0
- }
- }
- },
- users: {
- currentUser: {
- credentials: ''
- },
- usersObject: { 100: localUser },
- usersByNameObject: { testuser: localUser },
- users: [localUser],
- relationships: {}
- }
- }
- })
- // https://github.com/vuejs/test-utils/issues/1382
- describe.skip('UserProfile', () => {
- it('renders external profile', () => {
- const wrapper = mount(UserProfile, {
- global: {
- plugins: [externalProfileStore],
- mocks: {
- $route: {
- params: { id: 100 },
- name: 'external-user-profile'
- },
- $t: (msg) => msg
- }
- }
- })
- expect(wrapper.find('.user-screen-name').text()).to.eql('@testUser@test.instance')
- })
- it('renders local profile', () => {
- const wrapper = mount(UserProfile, {
- global: {
- plugins: [localProfileStore],
- mocks: {
- $route: {
- params: { name: 'testUser' },
- name: 'user-profile'
- },
- $t: (msg) => msg
- }
- }
- })
- expect(wrapper.find('.user-screen-name').text()).to.eql('@testUser')
- })
- })