From ff20b43cae3fe8efeda3ad8597c62dabb102e256 Mon Sep 17 00:00:00 2001 From: Matt Bell Date: Tue, 12 Dec 2017 16:41:35 -0500 Subject: [PATCH] Ensure sign-in option doesn't show if we don't have any accounts --- .../components/common/NiSessionSignUp.vue | 2 +- .../components/common/NiSessionWelcome.vue | 4 +-- test/unit/specs/NISessionSignUp.spec.js | 2 +- test/unit/specs/NISessionWelcome.spec.js | 26 +++++++++++++++---- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/src/renderer/components/common/NiSessionSignUp.vue b/app/src/renderer/components/common/NiSessionSignUp.vue index f60e26c4cc..827c3f80b3 100644 --- a/app/src/renderer/components/common/NiSessionSignUp.vue +++ b/app/src/renderer/components/common/NiSessionSignUp.vue @@ -88,7 +88,7 @@ export default { if (key) { this.$store.commit('setModalSession', false) this.$store.commit('notify', { title: 'Signed Up', body: 'Your account has been created.' }) - this.$store.dispatch('signUp', { password: this.fields.signUpPassword, account: this.fields.signUpName }) + this.$store.dispatch('signIn', { password: this.fields.signUpPassword, account: this.fields.signUpName }) } } }, diff --git a/app/src/renderer/components/common/NiSessionWelcome.vue b/app/src/renderer/components/common/NiSessionWelcome.vue index d48c3167d1..5e4eaff9cb 100644 --- a/app/src/renderer/components/common/NiSessionWelcome.vue +++ b/app/src/renderer/components/common/NiSessionWelcome.vue @@ -41,11 +41,11 @@ export default { LiSession }, computed: { - ...mapGetters(['config']) + ...mapGetters(['config', 'user']), + accountExists () { return this.user.accounts.length > 0 } }, methods: { help () { this.$store.commit('setModalHelp', true) }, - accountExists () { return !!this.$store.dispatch('accountExists') }, setState (value) { this.$store.commit('setModalSessionState', value) } } } diff --git a/test/unit/specs/NISessionSignUp.spec.js b/test/unit/specs/NISessionSignUp.spec.js index abd3da89d9..2c5e4dbed1 100644 --- a/test/unit/specs/NISessionSignUp.spec.js +++ b/test/unit/specs/NISessionSignUp.spec.js @@ -72,7 +72,7 @@ describe('NISessionSignUp', () => { await wrapper.vm.onSubmit() expect(store.commit.mock.calls[1][0]).toEqual('notify') expect(store.commit.mock.calls[1][1].title.toLowerCase()).toContain('signed up') - expect(store.dispatch).toHaveBeenCalledWith('signUp', { + expect(store.dispatch).toHaveBeenCalledWith('signIn', { password: '1234567890', account: 'testaccount' }) diff --git a/test/unit/specs/NISessionWelcome.spec.js b/test/unit/specs/NISessionWelcome.spec.js index ffaeea00e4..31d5b7e5ca 100644 --- a/test/unit/specs/NISessionWelcome.spec.js +++ b/test/unit/specs/NISessionWelcome.spec.js @@ -9,10 +9,12 @@ localVue.use(Vuex) describe('NISessionWelcome', () => { let wrapper, store, getters + let accounts = [] beforeEach(() => { getters = { - config: () => ({ devMode: true }) + config: () => ({ devMode: true }), + user: () => ({ accounts }) } store = new Vuex.Store({ getters }) store.commit = jest.fn() @@ -23,18 +25,32 @@ describe('NISessionWelcome', () => { }) }) - it('has the expected html structure', () => { - expect(htmlBeautify(wrapper.html())).toMatchSnapshot() - }) - it('should open the help model on click', () => { wrapper.findAll('.ni-session-header a').at(1).trigger('click') expect(store.commit.mock.calls[0]).toEqual(['setModalHelp', true]) }) + it('should not show sign-in link since we have no accounts', () => { + wrapper.find(LiSession).trigger('click') + expect(store.commit.mock.calls[0][1]).not.toEqual('sign-in') + }) + + it('(set up accounts for following tests)', () => { + accounts.push('foo', 'bar') + }) + + it('should show sign-in link since we have accounts', () => { + wrapper.find(LiSession).trigger('click') + expect(store.commit.mock.calls[0][1]).toEqual('sign-in') + }) + it('sets desired login method', () => { wrapper.findAll(LiSession).trigger('click') expect(store.commit.mock.calls[0][0]).toBe('setModalSessionState') expect(store.commit.mock.calls.map(args => args[1])).toEqual(['sign-in', 'sign-up', 'restore', 'hardware']) }) + + it('has the expected html structure', () => { + expect(htmlBeautify(wrapper.html())).toMatchSnapshot() + }) })