[MM-52121]: Migrate About build modal unit test to testing library (#22927)
* Migrate About build modal unit test to testing library * add user-event library * add user event * remove snapshot
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
40349cddd4
Коммит
24774f51da
@@ -116,6 +116,7 @@
|
|||||||
"@redux-devtools/extension": "3.2.3",
|
"@redux-devtools/extension": "3.2.3",
|
||||||
"@testing-library/jest-dom": "5.16.4",
|
"@testing-library/jest-dom": "5.16.4",
|
||||||
"@testing-library/react": "12.1.4",
|
"@testing-library/react": "12.1.4",
|
||||||
|
"@testing-library/user-event": "12.1.4",
|
||||||
"@types/bootstrap": "4.5.0",
|
"@types/bootstrap": "4.5.0",
|
||||||
"@types/country-list": "2.1.0",
|
"@types/country-list": "2.1.0",
|
||||||
"@types/enzyme": "3.10.11",
|
"@types/enzyme": "3.10.11",
|
||||||
|
|||||||
@@ -1,980 +0,0 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
||||||
|
|
||||||
exports[`components/AboutBuildModal should match snapshot for cloud edition 1`] = `
|
|
||||||
<ContextProvider
|
|
||||||
value={
|
|
||||||
Object {
|
|
||||||
"store": Object {
|
|
||||||
"clearActions": [Function],
|
|
||||||
"dispatch": [Function],
|
|
||||||
"getActions": [Function],
|
|
||||||
"getState": [Function],
|
|
||||||
"replaceReducer": [Function],
|
|
||||||
"subscribe": [Function],
|
|
||||||
},
|
|
||||||
"subscription": Subscription {
|
|
||||||
"handleChangeWrapper": [Function],
|
|
||||||
"listeners": Object {
|
|
||||||
"notify": [Function],
|
|
||||||
},
|
|
||||||
"onStateChange": [Function],
|
|
||||||
"parentSub": undefined,
|
|
||||||
"store": Object {
|
|
||||||
"clearActions": [Function],
|
|
||||||
"dispatch": [Function],
|
|
||||||
"getActions": [Function],
|
|
||||||
"getState": [Function],
|
|
||||||
"replaceReducer": [Function],
|
|
||||||
"subscribe": [Function],
|
|
||||||
},
|
|
||||||
"unsubscribe": null,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<AboutBuildModalCloud
|
|
||||||
config={
|
|
||||||
Object {
|
|
||||||
"BuildDate": "21 January 2017",
|
|
||||||
"BuildEnterpriseReady": "true",
|
|
||||||
"BuildHash": "abcdef1234567890",
|
|
||||||
"BuildHashEnterprise": "0123456789abcdef",
|
|
||||||
"BuildNumber": "3.6.2",
|
|
||||||
"PrivacyPolicyLink": "https://about.custom.com/privacy-policy/",
|
|
||||||
"SQLDriverName": "Postgres",
|
|
||||||
"SchemaVersion": "77",
|
|
||||||
"TermsOfServiceLink": "https://about.custom.com/default-terms/",
|
|
||||||
"Version": "3.6.0",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
doHide={[MockFunction]}
|
|
||||||
license={
|
|
||||||
Object {
|
|
||||||
"Cloud": "true",
|
|
||||||
"Company": "Mattermost Inc",
|
|
||||||
"IsLicensed": "true",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onExited={[MockFunction]}
|
|
||||||
show={true}
|
|
||||||
/>
|
|
||||||
</ContextProvider>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`components/AboutBuildModal should match snapshot for enterprise edition 1`] = `
|
|
||||||
<Modal
|
|
||||||
animation={true}
|
|
||||||
aria-labelledby="aboutModalLabel"
|
|
||||||
autoFocus={true}
|
|
||||||
backdrop={true}
|
|
||||||
bsClass="modal"
|
|
||||||
dialogClassName="a11y__modal about-modal"
|
|
||||||
dialogComponentClass={[Function]}
|
|
||||||
enforceFocus={true}
|
|
||||||
keyboard={true}
|
|
||||||
manager={
|
|
||||||
ModalManager {
|
|
||||||
"add": [Function],
|
|
||||||
"containers": Array [],
|
|
||||||
"data": Array [],
|
|
||||||
"handleContainerOverflow": true,
|
|
||||||
"hideSiblingNodes": true,
|
|
||||||
"isTopModal": [Function],
|
|
||||||
"modals": Array [],
|
|
||||||
"remove": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onExited={[MockFunction]}
|
|
||||||
onHide={[Function]}
|
|
||||||
renderBackdrop={[Function]}
|
|
||||||
restoreFocus={true}
|
|
||||||
role="dialog"
|
|
||||||
show={true}
|
|
||||||
>
|
|
||||||
<ModalHeader
|
|
||||||
bsClass="modal-header"
|
|
||||||
closeButton={true}
|
|
||||||
closeLabel="Close"
|
|
||||||
>
|
|
||||||
<ModalTitle
|
|
||||||
bsClass="modal-title"
|
|
||||||
componentClass="h1"
|
|
||||||
id="aboutModalLabel"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="About {appTitle}"
|
|
||||||
id="about.title"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"appTitle": "Mattermost",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</ModalTitle>
|
|
||||||
</ModalHeader>
|
|
||||||
<ModalBody
|
|
||||||
bsClass="modal-body"
|
|
||||||
componentClass="div"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__content"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__logo"
|
|
||||||
>
|
|
||||||
<MattermostLogo />
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3
|
|
||||||
className="about-modal__title"
|
|
||||||
>
|
|
||||||
<strong>
|
|
||||||
Mattermost
|
|
||||||
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Enterprise Edition"
|
|
||||||
id="about.enterpriseEditione1"
|
|
||||||
/>
|
|
||||||
</strong>
|
|
||||||
</h3>
|
|
||||||
<p
|
|
||||||
className="about-modal__subtitle pb-2"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Modern communication from behind your firewall."
|
|
||||||
id="about.enterpriseEditionSt"
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
className="form-group less"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost Version:"
|
|
||||||
id="about.version"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="versionString"
|
|
||||||
>
|
|
||||||
3.6.2
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database Schema Version:"
|
|
||||||
id="about.dbversion"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="dbversionString"
|
|
||||||
>
|
|
||||||
77
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database:"
|
|
||||||
id="about.database"
|
|
||||||
/>
|
|
||||||
Postgres
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="form-group"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Licensed to:"
|
|
||||||
id="about.licensed"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
Mattermost Inc
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__footer"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Learn more about Enterprise Edition at "
|
|
||||||
id="about.enterpriseEditionLearn"
|
|
||||||
/>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
mattermost.com
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="form-group"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__copyright"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Copyright 2015 - {currentYear} Mattermost, Inc. All rights reserved"
|
|
||||||
id="about.copyright"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"currentYear": 2017,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__links"
|
|
||||||
>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/terms-of-use/"
|
|
||||||
id="tosLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Terms of Use"
|
|
||||||
id="about.tos"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
-
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/privacy-policy/"
|
|
||||||
id="privacyLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Privacy Policy"
|
|
||||||
id="about.privacy"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__notice form-group pt-3"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost is made possible by the open source software used in our <linkServer>server</linkServer>, <linkDesktop>desktop</linkDesktop> and <linkMobile>mobile</linkMobile> apps."
|
|
||||||
id="about.notice"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"linkDesktop": [Function],
|
|
||||||
"linkMobile": [Function],
|
|
||||||
"linkServer": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__hash"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Hash:"
|
|
||||||
id="about.hash"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
abcdef1234567890
|
|
||||||
<br />
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="EE Build Hash:"
|
|
||||||
id="about.hashee"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
0123456789abcdef
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Date:"
|
|
||||||
id="about.date"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
21 January 2017
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</ModalBody>
|
|
||||||
</Modal>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`components/AboutBuildModal should match snapshot for team edition 1`] = `
|
|
||||||
<Modal
|
|
||||||
animation={true}
|
|
||||||
aria-labelledby="aboutModalLabel"
|
|
||||||
autoFocus={true}
|
|
||||||
backdrop={true}
|
|
||||||
bsClass="modal"
|
|
||||||
dialogClassName="a11y__modal about-modal"
|
|
||||||
dialogComponentClass={[Function]}
|
|
||||||
enforceFocus={true}
|
|
||||||
keyboard={true}
|
|
||||||
manager={
|
|
||||||
ModalManager {
|
|
||||||
"add": [Function],
|
|
||||||
"containers": Array [],
|
|
||||||
"data": Array [],
|
|
||||||
"handleContainerOverflow": true,
|
|
||||||
"hideSiblingNodes": true,
|
|
||||||
"isTopModal": [Function],
|
|
||||||
"modals": Array [],
|
|
||||||
"remove": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onExited={[MockFunction]}
|
|
||||||
onHide={[Function]}
|
|
||||||
renderBackdrop={[Function]}
|
|
||||||
restoreFocus={true}
|
|
||||||
role="dialog"
|
|
||||||
show={true}
|
|
||||||
>
|
|
||||||
<ModalHeader
|
|
||||||
bsClass="modal-header"
|
|
||||||
closeButton={true}
|
|
||||||
closeLabel="Close"
|
|
||||||
>
|
|
||||||
<ModalTitle
|
|
||||||
bsClass="modal-title"
|
|
||||||
componentClass="h1"
|
|
||||||
id="aboutModalLabel"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="About {appTitle}"
|
|
||||||
id="about.title"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"appTitle": "Mattermost",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</ModalTitle>
|
|
||||||
</ModalHeader>
|
|
||||||
<ModalBody
|
|
||||||
bsClass="modal-body"
|
|
||||||
componentClass="div"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__content"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__logo"
|
|
||||||
>
|
|
||||||
<MattermostLogo />
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3
|
|
||||||
className="about-modal__title"
|
|
||||||
>
|
|
||||||
<strong>
|
|
||||||
Mattermost
|
|
||||||
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Team Edition"
|
|
||||||
id="about.teamEditiont0"
|
|
||||||
/>
|
|
||||||
</strong>
|
|
||||||
</h3>
|
|
||||||
<p
|
|
||||||
className="about-modal__subtitle pb-2"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="All your team communication in one place, instantly searchable and accessible anywhere."
|
|
||||||
id="about.teamEditionSt"
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
className="form-group less"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost Version:"
|
|
||||||
id="about.version"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="versionString"
|
|
||||||
>
|
|
||||||
3.6.2
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database Schema Version:"
|
|
||||||
id="about.dbversion"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="dbversionString"
|
|
||||||
>
|
|
||||||
77
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database:"
|
|
||||||
id="about.database"
|
|
||||||
/>
|
|
||||||
Postgres
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__footer"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Join the Mattermost community at "
|
|
||||||
id="about.teamEditionLearn"
|
|
||||||
/>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/community/"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
mattermost.com/community/
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="form-group"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__copyright"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Copyright 2015 - {currentYear} Mattermost, Inc. All rights reserved"
|
|
||||||
id="about.copyright"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"currentYear": 2017,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__links"
|
|
||||||
>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/terms-of-use/"
|
|
||||||
id="tosLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Terms of Use"
|
|
||||||
id="about.tos"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
-
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/privacy-policy/"
|
|
||||||
id="privacyLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Privacy Policy"
|
|
||||||
id="about.privacy"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__notice form-group pt-3"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost is made possible by the open source software used in our <linkServer>server</linkServer>, <linkDesktop>desktop</linkDesktop> and <linkMobile>mobile</linkMobile> apps."
|
|
||||||
id="about.notice"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"linkDesktop": [Function],
|
|
||||||
"linkMobile": [Function],
|
|
||||||
"linkServer": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__hash"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Hash:"
|
|
||||||
id="about.hash"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
abcdef1234567890
|
|
||||||
<br />
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="EE Build Hash:"
|
|
||||||
id="about.hashee"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Date:"
|
|
||||||
id="about.date"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
21 January 2017
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</ModalBody>
|
|
||||||
</Modal>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`components/AboutBuildModal should show ci if a ci build 1`] = `
|
|
||||||
<Modal
|
|
||||||
animation={true}
|
|
||||||
aria-labelledby="aboutModalLabel"
|
|
||||||
autoFocus={true}
|
|
||||||
backdrop={true}
|
|
||||||
bsClass="modal"
|
|
||||||
dialogClassName="a11y__modal about-modal"
|
|
||||||
dialogComponentClass={[Function]}
|
|
||||||
enforceFocus={true}
|
|
||||||
keyboard={true}
|
|
||||||
manager={
|
|
||||||
ModalManager {
|
|
||||||
"add": [Function],
|
|
||||||
"containers": Array [],
|
|
||||||
"data": Array [],
|
|
||||||
"handleContainerOverflow": true,
|
|
||||||
"hideSiblingNodes": true,
|
|
||||||
"isTopModal": [Function],
|
|
||||||
"modals": Array [],
|
|
||||||
"remove": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onExited={[MockFunction]}
|
|
||||||
onHide={[Function]}
|
|
||||||
renderBackdrop={[Function]}
|
|
||||||
restoreFocus={true}
|
|
||||||
role="dialog"
|
|
||||||
show={true}
|
|
||||||
>
|
|
||||||
<ModalHeader
|
|
||||||
bsClass="modal-header"
|
|
||||||
closeButton={true}
|
|
||||||
closeLabel="Close"
|
|
||||||
>
|
|
||||||
<ModalTitle
|
|
||||||
bsClass="modal-title"
|
|
||||||
componentClass="h1"
|
|
||||||
id="aboutModalLabel"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="About {appTitle}"
|
|
||||||
id="about.title"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"appTitle": "Mattermost",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</ModalTitle>
|
|
||||||
</ModalHeader>
|
|
||||||
<ModalBody
|
|
||||||
bsClass="modal-body"
|
|
||||||
componentClass="div"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__content"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__logo"
|
|
||||||
>
|
|
||||||
<MattermostLogo />
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3
|
|
||||||
className="about-modal__title"
|
|
||||||
>
|
|
||||||
<strong>
|
|
||||||
Mattermost
|
|
||||||
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Team Edition"
|
|
||||||
id="about.teamEditiont0"
|
|
||||||
/>
|
|
||||||
</strong>
|
|
||||||
</h3>
|
|
||||||
<p
|
|
||||||
className="about-modal__subtitle pb-2"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="All your team communication in one place, instantly searchable and accessible anywhere."
|
|
||||||
id="about.teamEditionSt"
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
className="form-group less"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost Version:"
|
|
||||||
id="about.version"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="versionString"
|
|
||||||
>
|
|
||||||
ci
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database Schema Version:"
|
|
||||||
id="about.dbversion"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="dbversionString"
|
|
||||||
>
|
|
||||||
77
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Number:"
|
|
||||||
id="about.buildnumber"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="buildnumberString"
|
|
||||||
>
|
|
||||||
123
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database:"
|
|
||||||
id="about.database"
|
|
||||||
/>
|
|
||||||
Postgres
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__footer"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Join the Mattermost community at "
|
|
||||||
id="about.teamEditionLearn"
|
|
||||||
/>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/community/"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
mattermost.com/community/
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="form-group"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__copyright"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Copyright 2015 - {currentYear} Mattermost, Inc. All rights reserved"
|
|
||||||
id="about.copyright"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"currentYear": 2017,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__links"
|
|
||||||
>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/terms-of-use/"
|
|
||||||
id="tosLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Terms of Use"
|
|
||||||
id="about.tos"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
-
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/privacy-policy/"
|
|
||||||
id="privacyLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Privacy Policy"
|
|
||||||
id="about.privacy"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__notice form-group pt-3"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost is made possible by the open source software used in our <linkServer>server</linkServer>, <linkDesktop>desktop</linkDesktop> and <linkMobile>mobile</linkMobile> apps."
|
|
||||||
id="about.notice"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"linkDesktop": [Function],
|
|
||||||
"linkMobile": [Function],
|
|
||||||
"linkServer": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__hash"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Hash:"
|
|
||||||
id="about.hash"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
abcdef1234567890
|
|
||||||
<br />
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="EE Build Hash:"
|
|
||||||
id="about.hashee"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Date:"
|
|
||||||
id="about.date"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
21 January 2017
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</ModalBody>
|
|
||||||
</Modal>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`components/AboutBuildModal should show dev if this is a dev build 1`] = `
|
|
||||||
<Modal
|
|
||||||
animation={true}
|
|
||||||
aria-labelledby="aboutModalLabel"
|
|
||||||
autoFocus={true}
|
|
||||||
backdrop={true}
|
|
||||||
bsClass="modal"
|
|
||||||
dialogClassName="a11y__modal about-modal"
|
|
||||||
dialogComponentClass={[Function]}
|
|
||||||
enforceFocus={true}
|
|
||||||
keyboard={true}
|
|
||||||
manager={
|
|
||||||
ModalManager {
|
|
||||||
"add": [Function],
|
|
||||||
"containers": Array [],
|
|
||||||
"data": Array [],
|
|
||||||
"handleContainerOverflow": true,
|
|
||||||
"hideSiblingNodes": true,
|
|
||||||
"isTopModal": [Function],
|
|
||||||
"modals": Array [],
|
|
||||||
"remove": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onExited={[MockFunction]}
|
|
||||||
onHide={[Function]}
|
|
||||||
renderBackdrop={[Function]}
|
|
||||||
restoreFocus={true}
|
|
||||||
role="dialog"
|
|
||||||
show={true}
|
|
||||||
>
|
|
||||||
<ModalHeader
|
|
||||||
bsClass="modal-header"
|
|
||||||
closeButton={true}
|
|
||||||
closeLabel="Close"
|
|
||||||
>
|
|
||||||
<ModalTitle
|
|
||||||
bsClass="modal-title"
|
|
||||||
componentClass="h1"
|
|
||||||
id="aboutModalLabel"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="About {appTitle}"
|
|
||||||
id="about.title"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"appTitle": "Mattermost",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</ModalTitle>
|
|
||||||
</ModalHeader>
|
|
||||||
<ModalBody
|
|
||||||
bsClass="modal-body"
|
|
||||||
componentClass="div"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__content"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__logo"
|
|
||||||
>
|
|
||||||
<MattermostLogo />
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3
|
|
||||||
className="about-modal__title"
|
|
||||||
>
|
|
||||||
<strong>
|
|
||||||
Mattermost
|
|
||||||
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Team Edition"
|
|
||||||
id="about.teamEditiont0"
|
|
||||||
/>
|
|
||||||
</strong>
|
|
||||||
</h3>
|
|
||||||
<p
|
|
||||||
className="about-modal__subtitle pb-2"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="All your team communication in one place, instantly searchable and accessible anywhere."
|
|
||||||
id="about.teamEditionSt"
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
className="form-group less"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost Version:"
|
|
||||||
id="about.version"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="versionString"
|
|
||||||
>
|
|
||||||
dev
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database Schema Version:"
|
|
||||||
id="about.dbversion"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
id="dbversionString"
|
|
||||||
>
|
|
||||||
77
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Database:"
|
|
||||||
id="about.database"
|
|
||||||
/>
|
|
||||||
Postgres
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__footer"
|
|
||||||
>
|
|
||||||
<div>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Join the Mattermost community at "
|
|
||||||
id="about.teamEditionLearn"
|
|
||||||
/>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/community/"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
mattermost.com/community/
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="form-group"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about-modal__copyright"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Copyright 2015 - {currentYear} Mattermost, Inc. All rights reserved"
|
|
||||||
id="about.copyright"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"currentYear": 2017,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__links"
|
|
||||||
>
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/terms-of-use/"
|
|
||||||
id="tosLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Terms of Use"
|
|
||||||
id="about.tos"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
-
|
|
||||||
<ExternalLink
|
|
||||||
href="https://mattermost.com/privacy-policy/"
|
|
||||||
id="privacyLink"
|
|
||||||
location="about_build_modal"
|
|
||||||
>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Privacy Policy"
|
|
||||||
id="about.privacy"
|
|
||||||
/>
|
|
||||||
</ExternalLink>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__notice form-group pt-3"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Mattermost is made possible by the open source software used in our <linkServer>server</linkServer>, <linkDesktop>desktop</linkDesktop> and <linkMobile>mobile</linkMobile> apps."
|
|
||||||
id="about.notice"
|
|
||||||
values={
|
|
||||||
Object {
|
|
||||||
"linkDesktop": [Function],
|
|
||||||
"linkMobile": [Function],
|
|
||||||
"linkServer": [Function],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className="about-modal__hash"
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Hash:"
|
|
||||||
id="about.hash"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
abcdef1234567890
|
|
||||||
<br />
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="EE Build Hash:"
|
|
||||||
id="about.hashee"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<MemoizedFormattedMessage
|
|
||||||
defaultMessage="Build Date:"
|
|
||||||
id="about.date"
|
|
||||||
/>
|
|
||||||
<Nbsp />
|
|
||||||
21 January 2017
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</ModalBody>
|
|
||||||
</Modal>
|
|
||||||
`;
|
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
// See LICENSE.txt for license information.
|
// See LICENSE.txt for license information.
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {Modal} from 'react-bootstrap';
|
|
||||||
import {shallow} from 'enzyme';
|
|
||||||
import {Provider} from 'react-redux';
|
import {Provider} from 'react-redux';
|
||||||
|
|
||||||
import mockStore from 'tests/test_store';
|
import mockStore from 'tests/test_store';
|
||||||
@@ -12,11 +10,13 @@ import {ClientConfig, ClientLicense} from '@mattermost/types/config';
|
|||||||
|
|
||||||
import AboutBuildModal from 'components/about_build_modal/about_build_modal';
|
import AboutBuildModal from 'components/about_build_modal/about_build_modal';
|
||||||
|
|
||||||
import {mountWithIntl} from 'tests/helpers/intl-test-helper';
|
|
||||||
|
|
||||||
import {AboutLinks} from 'utils/constants';
|
import {AboutLinks} from 'utils/constants';
|
||||||
|
|
||||||
import AboutBuildModalCloud from './about_build_modal_cloud/about_build_modal_cloud';
|
import AboutBuildModalCloud from './about_build_modal_cloud/about_build_modal_cloud';
|
||||||
|
import {screen} from '@testing-library/react';
|
||||||
|
import {renderWithIntl} from 'tests/react_testing_utils';
|
||||||
|
import store from 'stores/redux_store';
|
||||||
|
import userEvent from '@testing-library/user-event';
|
||||||
|
|
||||||
describe('components/AboutBuildModal', () => {
|
describe('components/AboutBuildModal', () => {
|
||||||
const RealDate: DateConstructor = Date;
|
const RealDate: DateConstructor = Date;
|
||||||
@@ -60,10 +60,17 @@ describe('components/AboutBuildModal', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('should match snapshot for enterprise edition', () => {
|
test('should match snapshot for enterprise edition', () => {
|
||||||
const wrapper = shallowAboutBuildModal({config, license});
|
renderAboutBuildModal({config, license});
|
||||||
expect(wrapper.find('#versionString').text()).toBe('\u00a03.6.2');
|
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: 3.6.2');
|
||||||
expect(wrapper.find('#dbversionString').text()).toBe('\u00a077');
|
expect(screen.getByTestId('aboutModalDBVersionString')).toHaveTextContent('Database Schema Version: 77');
|
||||||
expect(wrapper).toMatchSnapshot();
|
expect(screen.getByText('Mattermost Enterprise Edition')).toBeInTheDocument();
|
||||||
|
expect(screen.getByText('Modern communication from behind your firewall.')).toBeInTheDocument();
|
||||||
|
expect(screen.getByRole('link', {name: 'mattermost.com'})).toHaveAttribute('href', 'https://mattermost.com/?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=&sid=');
|
||||||
|
expect(screen.getByText('EE Build Hash: 0123456789abcdef', {exact: false})).toBeInTheDocument();
|
||||||
|
|
||||||
|
expect(screen.getByRole('link', {name: 'server'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-server/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'desktop'})).toHaveAttribute('href', 'https://github.com/mattermost/desktop/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'mobile'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-mobile/blob/master/NOTICE.txt');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should match snapshot for team edition', () => {
|
test('should match snapshot for team edition', () => {
|
||||||
@@ -73,19 +80,25 @@ describe('components/AboutBuildModal', () => {
|
|||||||
BuildHashEnterprise: '',
|
BuildHashEnterprise: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
const wrapper = shallowAboutBuildModal({config: teamConfig, license: {}});
|
renderAboutBuildModal({config: teamConfig, license: {}});
|
||||||
expect(wrapper.find('#versionString').text()).toBe('\u00a03.6.2');
|
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: 3.6.2');
|
||||||
expect(wrapper.find('#dbversionString').text()).toBe('\u00a077');
|
expect(screen.getByTestId('aboutModalDBVersionString')).toHaveTextContent('Database Schema Version: 77');
|
||||||
expect(wrapper).toMatchSnapshot();
|
expect(screen.getByText('Mattermost Team Edition')).toBeInTheDocument();
|
||||||
|
expect(screen.getByText('All your team communication in one place, instantly searchable and accessible anywhere.')).toBeInTheDocument();
|
||||||
|
expect(screen.getByRole('link', {name: 'mattermost.com/community/'})).toHaveAttribute('href', 'https://mattermost.com/community/?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=&sid=');
|
||||||
|
expect(screen.queryByText('EE Build Hash: 0123456789abcdef')).not.toBeInTheDocument();
|
||||||
|
|
||||||
|
expect(screen.getByRole('link', {name: 'server'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-server/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'desktop'})).toHaveAttribute('href', 'https://github.com/mattermost/desktop/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'mobile'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-mobile/blob/master/NOTICE.txt');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should match snapshot for cloud edition', () => {
|
test('should match snapshot for cloud edition', () => {
|
||||||
if (license !== null) {
|
if (license !== null) {
|
||||||
license.Cloud = 'true';
|
license.Cloud = 'true';
|
||||||
}
|
}
|
||||||
const store = mockStore();
|
|
||||||
|
|
||||||
const wrapper = shallow(
|
renderWithIntl(
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
<AboutBuildModalCloud
|
<AboutBuildModalCloud
|
||||||
config={config}
|
config={config}
|
||||||
@@ -96,7 +109,14 @@ describe('components/AboutBuildModal', () => {
|
|||||||
/>
|
/>
|
||||||
</Provider>,
|
</Provider>,
|
||||||
);
|
);
|
||||||
expect(wrapper).toMatchSnapshot();
|
|
||||||
|
expect(screen.getByText('Mattermost Cloud')).toBeInTheDocument();
|
||||||
|
expect(screen.getByText('High trust messaging for the enterprise')).toBeInTheDocument();
|
||||||
|
|
||||||
|
expect(screen.getByText('0123456789abcdef', {exact: false})).toBeInTheDocument();
|
||||||
|
expect(screen.getByRole('link', {name: 'server'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-server/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'desktop'})).toHaveAttribute('href', 'https://github.com/mattermost/desktop/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'mobile'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-mobile/blob/master/NOTICE.txt');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should show dev if this is a dev build', () => {
|
test('should show dev if this is a dev build', () => {
|
||||||
@@ -109,10 +129,18 @@ describe('components/AboutBuildModal', () => {
|
|||||||
BuildNumber: 'dev',
|
BuildNumber: 'dev',
|
||||||
};
|
};
|
||||||
|
|
||||||
const wrapper = shallowAboutBuildModal({config: sameBuildConfig, license: {}});
|
renderAboutBuildModal({config: sameBuildConfig, license: {}});
|
||||||
expect(wrapper).toMatchSnapshot();
|
|
||||||
expect(wrapper.find('#versionString').text()).toBe('\u00a0dev');
|
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: dev');
|
||||||
expect(wrapper.find('#dbversionString').text()).toBe('\u00a077');
|
expect(screen.getByTestId('aboutModalDBVersionString')).toHaveTextContent('Database Schema Version: 77');
|
||||||
|
expect(screen.getByText('Mattermost Team Edition')).toBeInTheDocument();
|
||||||
|
expect(screen.getByText('All your team communication in one place, instantly searchable and accessible anywhere.')).toBeInTheDocument();
|
||||||
|
expect(screen.getByRole('link', {name: 'mattermost.com/community/'})).toHaveAttribute('href', 'https://mattermost.com/community/?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=&sid=');
|
||||||
|
expect(screen.queryByText('EE Build Hash: 0123456789abcdef')).not.toBeInTheDocument();
|
||||||
|
|
||||||
|
expect(screen.getByRole('link', {name: 'server'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-server/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'desktop'})).toHaveAttribute('href', 'https://github.com/mattermost/desktop/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'mobile'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-mobile/blob/master/NOTICE.txt');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should show ci if a ci build', () => {
|
test('should show ci if a ci build', () => {
|
||||||
@@ -125,11 +153,19 @@ describe('components/AboutBuildModal', () => {
|
|||||||
BuildNumber: '123',
|
BuildNumber: '123',
|
||||||
};
|
};
|
||||||
|
|
||||||
const wrapper = shallowAboutBuildModal({config: differentBuildConfig, license: {}});
|
renderAboutBuildModal({config: differentBuildConfig, license: {}});
|
||||||
expect(wrapper).toMatchSnapshot();
|
|
||||||
expect(wrapper.find('#versionString').text()).toBe('\u00a0ci');
|
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: ci');
|
||||||
expect(wrapper.find('#dbversionString').text()).toBe('\u00a077');
|
expect(screen.getByTestId('aboutModalDBVersionString')).toHaveTextContent('Database Schema Version: 77');
|
||||||
expect(wrapper.find('#buildnumberString').text()).toBe('\u00a0123');
|
expect(screen.getByTestId('aboutModalBuildNumber')).toHaveTextContent('Build Number: 123');
|
||||||
|
expect(screen.getByText('Mattermost Team Edition')).toBeInTheDocument();
|
||||||
|
expect(screen.getByText('All your team communication in one place, instantly searchable and accessible anywhere.')).toBeInTheDocument();
|
||||||
|
expect(screen.getByRole('link', {name: 'mattermost.com/community/'})).toHaveAttribute('href', 'https://mattermost.com/community/?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=&sid=');
|
||||||
|
expect(screen.queryByText('EE Build Hash: 0123456789abcdef')).not.toBeInTheDocument();
|
||||||
|
|
||||||
|
expect(screen.getByRole('link', {name: 'server'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-server/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'desktop'})).toHaveAttribute('href', 'https://github.com/mattermost/desktop/blob/master/NOTICE.txt');
|
||||||
|
expect(screen.getByRole('link', {name: 'mobile'})).toHaveAttribute('href', 'https://github.com/mattermost/mattermost-mobile/blob/master/NOTICE.txt');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should call onExited callback when the modal is hidden', () => {
|
test('should call onExited callback when the modal is hidden', () => {
|
||||||
@@ -148,7 +184,7 @@ describe('components/AboutBuildModal', () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const wrapper = mountWithIntl(
|
renderWithIntl(
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
<AboutBuildModal
|
<AboutBuildModal
|
||||||
config={config}
|
config={config}
|
||||||
@@ -158,7 +194,7 @@ describe('components/AboutBuildModal', () => {
|
|||||||
</Provider>,
|
</Provider>,
|
||||||
);
|
);
|
||||||
|
|
||||||
wrapper.find(Modal).first().props().onExited?.(document.createElement('div'));
|
userEvent.click(screen.getByText('Close'));
|
||||||
expect(onExited).toHaveBeenCalledTimes(1);
|
expect(onExited).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -176,7 +212,7 @@ describe('components/AboutBuildModal', () => {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const wrapper = mountWithIntl(
|
renderWithIntl(
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
<AboutBuildModal
|
<AboutBuildModal
|
||||||
config={config}
|
config={config}
|
||||||
@@ -186,24 +222,15 @@ describe('components/AboutBuildModal', () => {
|
|||||||
</Provider>,
|
</Provider>,
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(
|
expect(screen.getByRole('link', {name: 'Terms of Use'})).toHaveAttribute('href', `${AboutLinks.TERMS_OF_SERVICE}?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=currentUserId&sid=`);
|
||||||
wrapper.find(AboutBuildModal).find('a#tosLink').props().href,
|
|
||||||
).toBe(
|
|
||||||
AboutLinks.TERMS_OF_SERVICE +
|
|
||||||
'?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=currentUserId&sid=',
|
|
||||||
);
|
|
||||||
expect(
|
|
||||||
wrapper.find(AboutBuildModal).find('a#privacyLink').props().href,
|
|
||||||
).toBe(
|
|
||||||
AboutLinks.PRIVACY_POLICY +
|
|
||||||
'?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=currentUserId&sid=',
|
|
||||||
);
|
|
||||||
|
|
||||||
expect(wrapper.find(AboutBuildModal).find('a#tosLink').props().href).not.toBe(config?.TermsOfServiceLink);
|
expect(screen.getByRole('link', {name: 'Privacy Policy'})).toHaveAttribute('href', `${AboutLinks.PRIVACY_POLICY}?utm_source=mattermost&utm_medium=in-product&utm_content=about_build_modal&uid=currentUserId&sid=`);
|
||||||
expect(wrapper.find(AboutBuildModal).find('a#privacyLink').props().href).not.toBe(config?.PrivacyPolicyLink);
|
|
||||||
|
expect(screen.getByRole('link', {name: 'Terms of Use'})).not.toHaveAttribute('href', config?.TermsOfServiceLink);
|
||||||
|
expect(screen.getByRole('link', {name: 'Privacy Policy'})).not.toHaveAttribute('href', config?.PrivacyPolicyLink);
|
||||||
});
|
});
|
||||||
|
|
||||||
function shallowAboutBuildModal(props = {}) {
|
function renderAboutBuildModal(props = {}) {
|
||||||
const onExited = jest.fn();
|
const onExited = jest.fn();
|
||||||
const show = true;
|
const show = true;
|
||||||
|
|
||||||
@@ -215,6 +242,6 @@ describe('components/AboutBuildModal', () => {
|
|||||||
...props,
|
...props,
|
||||||
};
|
};
|
||||||
|
|
||||||
return shallow(<AboutBuildModal {...allProps}/>);
|
return renderWithIntl(<Provider store={store}><AboutBuildModal {...allProps}/></Provider>);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export default class AboutBuildModal extends React.PureComponent<Props, State> {
|
|||||||
|
|
||||||
doHide = () => {
|
doHide = () => {
|
||||||
this.setState({show: false});
|
this.setState({show: false});
|
||||||
|
this.props.onExited();
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@@ -172,7 +173,7 @@ export default class AboutBuildModal extends React.PureComponent<Props, State> {
|
|||||||
|
|
||||||
// Only show build number if it's a number (so only builds from Jenkins)
|
// Only show build number if it's a number (so only builds from Jenkins)
|
||||||
let buildnumber: JSX.Element | null = (
|
let buildnumber: JSX.Element | null = (
|
||||||
<div>
|
<div data-testid='aboutModalBuildNumber'>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='about.buildnumber'
|
id='about.buildnumber'
|
||||||
defaultMessage='Build Number:'
|
defaultMessage='Build Number:'
|
||||||
@@ -227,7 +228,7 @@ export default class AboutBuildModal extends React.PureComponent<Props, State> {
|
|||||||
{subTitle}
|
{subTitle}
|
||||||
</p>
|
</p>
|
||||||
<div className='form-group less'>
|
<div className='form-group less'>
|
||||||
<div>
|
<div data-testid='aboutModalVersion'>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='about.version'
|
id='about.version'
|
||||||
defaultMessage='Mattermost Version:'
|
defaultMessage='Mattermost Version:'
|
||||||
@@ -236,7 +237,7 @@ export default class AboutBuildModal extends React.PureComponent<Props, State> {
|
|||||||
{'\u00a0' + mmversion}
|
{'\u00a0' + mmversion}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid='aboutModalDBVersionString'>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
id='about.dbversion'
|
id='about.dbversion'
|
||||||
defaultMessage='Database Schema Version:'
|
defaultMessage='Database Schema Version:'
|
||||||
|
|||||||
27
webapp/package-lock.json
сгенерированный
27
webapp/package-lock.json
сгенерированный
@@ -3663,6 +3663,7 @@
|
|||||||
"@redux-devtools/extension": "3.2.3",
|
"@redux-devtools/extension": "3.2.3",
|
||||||
"@testing-library/jest-dom": "5.16.4",
|
"@testing-library/jest-dom": "5.16.4",
|
||||||
"@testing-library/react": "12.1.4",
|
"@testing-library/react": "12.1.4",
|
||||||
|
"@testing-library/user-event": "12.1.4",
|
||||||
"@types/bootstrap": "4.5.0",
|
"@types/bootstrap": "4.5.0",
|
||||||
"@types/country-list": "2.1.0",
|
"@types/country-list": "2.1.0",
|
||||||
"@types/enzyme": "3.10.11",
|
"@types/enzyme": "3.10.11",
|
||||||
@@ -3844,6 +3845,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"channels/node_modules/@testing-library/user-event": {
|
||||||
|
"version": "12.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.1.4.tgz",
|
||||||
|
"integrity": "sha512-vd5s43lNfyq/JEr8ndQmS+An6dEVUmjW9zqtpmMHU+rrPMaHLrUIlWZ9wDE8ALS/dFMsu6U00A5X/7Dv/2tWnw==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.10.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10",
|
||||||
|
"npm": ">=6"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@testing-library/dom": ">=7.21.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"channels/node_modules/@types/react-select": {
|
"channels/node_modules/@types/react-select": {
|
||||||
"version": "3.0.19",
|
"version": "3.0.19",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-3.0.19.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-3.0.19.tgz",
|
||||||
@@ -54422,6 +54439,7 @@
|
|||||||
"@stripe/stripe-js": "1.41.0",
|
"@stripe/stripe-js": "1.41.0",
|
||||||
"@testing-library/jest-dom": "5.16.4",
|
"@testing-library/jest-dom": "5.16.4",
|
||||||
"@testing-library/react": "12.1.4",
|
"@testing-library/react": "12.1.4",
|
||||||
|
"@testing-library/user-event": "12.1.4",
|
||||||
"@tippyjs/react": "4.2.6",
|
"@tippyjs/react": "4.2.6",
|
||||||
"@types/bootstrap": "4.5.0",
|
"@types/bootstrap": "4.5.0",
|
||||||
"@types/color-hash": "1.0.2",
|
"@types/color-hash": "1.0.2",
|
||||||
@@ -54668,6 +54686,15 @@
|
|||||||
"typescript": "^4.7"
|
"typescript": "^4.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@testing-library/user-event": {
|
||||||
|
"version": "12.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.1.4.tgz",
|
||||||
|
"integrity": "sha512-vd5s43lNfyq/JEr8ndQmS+An6dEVUmjW9zqtpmMHU+rrPMaHLrUIlWZ9wDE8ALS/dFMsu6U00A5X/7Dv/2tWnw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.10.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/react-select": {
|
"@types/react-select": {
|
||||||
"version": "3.0.19",
|
"version": "3.0.19",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-3.0.19.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-3.0.19.tgz",
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user