aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/user_profile/user_profile.js7
-rw-r--r--src/modules/statuses.js2
-rw-r--r--src/modules/users.js4
-rw-r--r--test/unit/specs/components/user_profile.spec.js14
-rw-r--r--test/unit/specs/modules/users.spec.js4
5 files changed, 19 insertions, 12 deletions
diff --git a/src/components/user_profile/user_profile.js b/src/components/user_profile/user_profile.js
index 2d186bc5..a8dfce2f 100644
--- a/src/components/user_profile/user_profile.js
+++ b/src/components/user_profile/user_profile.js
@@ -68,7 +68,7 @@ const UserProfile = {
},
userInStore () {
const routeParams = this.$route.params
- return this.$store.getters.findUser(routeParams.name || routeParams.iid)
+ return this.$store.getters.findUser(routeParams.name || routeParams.id)
},
user () {
if (this.timeline.statuses[0]) {
@@ -135,13 +135,14 @@ const UserProfile = {
}
},
watch: {
- userId (newVal, oldVal) {
+ // userId can be undefined if we don't know it yet
+ userId (newVal) {
if (newVal) {
this.cleanUp()
this.startUp()
}
},
- userName (newVal, oldVal) {
+ userName () {
if (this.$route.params.name) {
this.fetchUserId()
this.cleanUp()
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 2b0215f0..ea1b2de0 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -73,7 +73,7 @@ const mergeOrAdd = (arr, obj, item) => {
if (oldItem) {
// We already have this, so only merge the new info.
// We ignore null values to avoid overwriting existing properties with missing data
- // we also skip 'used' because that is handled by users module
+ // we also skip 'user' because that is handled by users module
merge(oldItem, omitBy(item, (v, k) => v === null || k === 'user'))
// Reactivity fix.
oldItem.attachments.splice(oldItem.attachments.length)
diff --git a/src/modules/users.js b/src/modules/users.js
index e4146c31..5eabb1ec 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -18,7 +18,7 @@ export const mergeOrAdd = (arr, obj, item) => {
arr.push(item)
obj[item.id] = item
if (item.screen_name && !item.screen_name.includes('@')) {
- obj[item.screen_name] = item
+ obj[item.screen_name.toLowerCase()] = item
}
return { item, new: true }
}
@@ -132,7 +132,7 @@ export const mutations = {
}
export const getters = {
- findUser: state => query => state.usersObject[query]
+ findUser: state => query => state.usersObject[typeof query === 'string' ? query.toLowerCase() : query]
}
export const defaultState = {
diff --git a/test/unit/specs/components/user_profile.spec.js b/test/unit/specs/components/user_profile.spec.js
index 23e5ce20..847481f3 100644
--- a/test/unit/specs/components/user_profile.spec.js
+++ b/test/unit/specs/components/user_profile.spec.js
@@ -12,6 +12,11 @@ const mutations = {
setError: () => {}
}
+const actions = {
+ fetchUser: () => {},
+ fetchUserByScreenName: () => {}
+}
+
const testGetters = {
findUser: state => getters.findUser(state.users)
}
@@ -30,6 +35,7 @@ const extUser = {
const externalProfileStore = new Vuex.Store({
mutations,
+ actions,
getters: testGetters,
state: {
api: {
@@ -88,7 +94,7 @@ const externalProfileStore = new Vuex.Store({
currentUser: {
credentials: ''
},
- usersObject: [extUser],
+ usersObject: { 100: extUser },
users: [extUser]
}
}
@@ -96,6 +102,7 @@ const externalProfileStore = new Vuex.Store({
const localProfileStore = new Vuex.Store({
mutations,
+ actions,
getters: testGetters,
state: {
api: {
@@ -154,14 +161,13 @@ const localProfileStore = new Vuex.Store({
currentUser: {
credentials: ''
},
- usersObject: [localUser],
+ usersObject: { 100: localUser, 'testuser': localUser },
users: [localUser]
}
}
})
-// It's a little bit more complicated now
-describe.skip('UserProfile', () => {
+describe('UserProfile', () => {
it('renders external profile', () => {
const wrapper = mount(UserProfile, {
localVue,
diff --git a/test/unit/specs/modules/users.spec.js b/test/unit/specs/modules/users.spec.js
index a7f18dce..c8bc0ae7 100644
--- a/test/unit/specs/modules/users.spec.js
+++ b/test/unit/specs/modules/users.spec.js
@@ -40,7 +40,7 @@ describe('The users module', () => {
const state = {
usersObject: {
1: user,
- Guy: user
+ guy: user
}
}
const name = 'Guy'
@@ -53,7 +53,7 @@ describe('The users module', () => {
const state = {
usersObject: {
1: user,
- Guy: user
+ guy: user
}
}
const id = '1'