diff options
Diffstat (limited to 'webapp/tests/components/about_build_modal.test.jsx')
-rw-r--r-- | webapp/tests/components/about_build_modal.test.jsx | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/webapp/tests/components/about_build_modal.test.jsx b/webapp/tests/components/about_build_modal.test.jsx new file mode 100644 index 000000000..981bbac67 --- /dev/null +++ b/webapp/tests/components/about_build_modal.test.jsx @@ -0,0 +1,129 @@ +// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React from 'react'; +import {shallow} from 'enzyme'; +import {mountWithIntl} from 'tests/helpers/intl-test-helper.jsx'; + +import AboutBuildModal from 'components/about_build_modal.jsx'; +import {Modal} from 'react-bootstrap'; + +describe('components/AboutBuildModal', () => { + afterEach(() => { + global.window.mm_config = null; + global.window.mm_license = null; + }); + + test('should match snapshot for enterprise edition', () => { + global.window.mm_config = { + BuildEnterpriseReady: 'true', + Version: '3.6.0', + BuildNumber: '3.6.2', + SQLDriverName: 'Postgres', + BuildHash: 'abcdef1234567890', + BuildHashEnterprise: '0123456789abcdef', + BuildDate: '21 January 2017' + }; + + global.window.mm_license = { + isLicensed: 'true', + Company: 'Mattermost Inc' + }; + + const wrapper = shallow( + <AboutBuildModal + show={true} + onModalDismissed={null} + /> + ); + expect(wrapper).toMatchSnapshot(); + }); + + test('should match snapshot for team edition', () => { + global.window.mm_config = { + BuildEnterpriseReady: 'false', + Version: '3.6.0', + BuildNumber: '3.6.2', + SQLDriverName: 'Postgres', + BuildHash: 'abcdef1234567890', + BuildDate: '21 January 2017' + }; + + global.window.mm_license = null; + + const wrapper = shallow( + <AboutBuildModal + show={true} + onModalDismissed={null} + /> + ); + expect(wrapper).toMatchSnapshot(); + }); + + test('should hide the build number if it is the same as the version number', () => { + global.window.mm_config = { + BuildEnterpriseReady: 'false', + Version: '3.6.0', + BuildNumber: '3.6.0', + SQLDriverName: 'Postgres', + BuildHash: 'abcdef1234567890', + BuildDate: '21 January 2017' + }; + + global.window.mm_license = null; + + const wrapper = shallow( + <AboutBuildModal + show={true} + onModalDismissed={null} + /> + ); + expect(wrapper.find('#versionString').text()).toBe(' 3.6.0'); + }); + + test('should show the build number if it is the different from the version number', () => { + global.window.mm_config = { + BuildEnterpriseReady: 'false', + Version: '3.6.0', + BuildNumber: '3.6.2', + SQLDriverName: 'Postgres', + BuildHash: 'abcdef1234567890', + BuildDate: '21 January 2017' + }; + + global.window.mm_license = null; + + const wrapper = shallow( + <AboutBuildModal + show={true} + onModalDismissed={null} + /> + ); + expect(wrapper.find('#versionString').text()).toBe(' 3.6.0\u00a0 (3.6.2)'); + }); + + test('should call onModalDismissed callback when the modal is hidden', (done) => { + global.window.mm_config = { + BuildEnterpriseReady: 'false', + Version: '3.6.0', + BuildNumber: '3.6.2', + SQLDriverName: 'Postgres', + BuildHash: 'abcdef1234567890', + BuildDate: '21 January 2017' + }; + + global.window.mm_license = null; + + function onHide() { + done(); + } + + const wrapper = mountWithIntl( + <AboutBuildModal + show={true} + onModalDismissed={onHide} + /> + ); + wrapper.find(Modal).first().props().onHide(); + }); +}); |