From 72780a6217add2bcd6dec032a471a91b444e5271 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Tue, 7 May 2019 17:49:07 +0800 Subject: [PATCH] Preview player automatically if user has only one player (fix #46) --- resources/assets/src/views/user/Players.vue | 7 ++-- .../assets/tests/views/user/Players.test.ts | 32 +++++++++++++------ resources/misc/changelogs/en/4.2.0.md | 4 +++ resources/misc/changelogs/zh_CN/4.2.0.md | 4 +++ 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/resources/assets/src/views/user/Players.vue b/resources/assets/src/views/user/Players.vue index 29e64d12..e4c4b8e0 100644 --- a/resources/assets/src/views/user/Players.vue +++ b/resources/assets/src/views/user/Players.vue @@ -191,8 +191,11 @@ export default { }, } }, - beforeMount() { - this.fetchPlayers() + async beforeMount() { + await this.fetchPlayers() + if (this.players.length === 1) { + this.preview(this.players[0]) + } }, methods: { async fetchPlayers() { diff --git a/resources/assets/tests/views/user/Players.test.ts b/resources/assets/tests/views/user/Players.test.ts index 8c3793fc..d17440be 100644 --- a/resources/assets/tests/views/user/Players.test.ts +++ b/resources/assets/tests/views/user/Players.test.ts @@ -18,10 +18,21 @@ test('display player name constraints', () => { expect(text).toContain('length') }) -test('fetch players data before mount', () => { - Vue.prototype.$http.get.mockResolvedValue({ data: [] }) +test('fetch players data before mount', async () => { + Vue.prototype.$http.get + .mockResolvedValueOnce({ data: [] }) + .mockResolvedValueOnce({ + data: [{ + pid: 1, tid_skin: 1, tid_cape: 0, + }], + }) + .mockResolvedValueOnce({ data: {} }) mount(Players) expect(Vue.prototype.$http.get).toBeCalledWith('/user/player/list') + + mount(Players) + await flushPromises() + expect(Vue.prototype.$http.get).toBeCalledWith('/skinlib/info/1') }) test('click to preview player', async () => { @@ -158,13 +169,16 @@ test('add player', async () => { test('clear texture', async () => { window.$ = jest.fn(() => ({ modal() {} })) - Vue.prototype.$http.get.mockResolvedValueOnce({ - data: [ - { - pid: 1, tid_skin: 1, tid_cape: 0, - }, - ], - }) + Vue.prototype.$http.get + .mockResolvedValueOnce({ + data: [ + { + pid: 1, tid_skin: 1, tid_cape: 0, + }, + ], + }) + .mockResolvedValueOnce({ data: {} }) + .mockResolvedValueOnce({ data: {} }) Vue.prototype.$http.post .mockResolvedValueOnce({ code: 1 }) .mockResolvedValue({ code: 0, message: 'ok' }) diff --git a/resources/misc/changelogs/en/4.2.0.md b/resources/misc/changelogs/en/4.2.0.md index 3328cdc7..7eb26e9e 100644 --- a/resources/misc/changelogs/en/4.2.0.md +++ b/resources/misc/changelogs/en/4.2.0.md @@ -3,6 +3,10 @@ - Chart at administration panel will show today's data. - New event for plugins: `TextureDeleting`. +## Tweaked + +- Preview the player automatically if a user has only one player. + ## Fixed - Fixed resetting options of "Customize" page. diff --git a/resources/misc/changelogs/zh_CN/4.2.0.md b/resources/misc/changelogs/zh_CN/4.2.0.md index 10e028e8..dc9035dc 100644 --- a/resources/misc/changelogs/zh_CN/4.2.0.md +++ b/resources/misc/changelogs/zh_CN/4.2.0.md @@ -3,6 +3,10 @@ - 管理面板中的图表可显示当天的数据 - 新的插件事件:`TextureDeleting` +## 调整 + +- 当用户只有一个角色时,角色页面会自动预览该角色 + ## 修复 - 修复「个性化」页面不能重置选项的问题