123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- import { mount, createLocalVue } from '@vue/test-utils'
- import Vuex 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 localVue = createLocalVue()
- localVue.use(Vuex)
- const mutations = {
- clearTimeline: () => {}
- }
- const actions = {
- fetchUser: () => {},
- fetchUserByScreenName: () => {}
- }
- const testGetters = {
- findUser: state => getters.findUser(state.users),
- relationship: state => getters.relationship(state.users),
- mergedConfig: state => ({
- colors: '',
- highlight: {},
- customTheme: {
- colors: []
- }
- })
- }
- const localUser = {
- id: 100,
- is_local: true,
- screen_name: 'testUser'
- }
- const extUser = {
- id: 100,
- is_local: false,
- screen_name: 'testUser@test.instance'
- }
- const externalProfileStore = new Vuex.Store({
- 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 },
- users: [extUser],
- relationships: {}
- }
- }
- })
- const localProfileStore = new Vuex.Store({
- 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, 'testuser': localUser },
- users: [localUser],
- relationships: {}
- }
- }
- })
- describe('UserProfile', () => {
- it('renders external profile', () => {
- const wrapper = mount(UserProfile, {
- localVue,
- store: 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, {
- localVue,
- store: localProfileStore,
- mocks: {
- $route: {
- params: { name: 'testUser' },
- name: 'user-profile'
- },
- $t: (msg) => msg
- }
- })
- expect(wrapper.find('.user-screen-name').text()).to.eql('@testUser')
- })
- })
|