fix: Show proper version on about modal (#25370)

This commit is contained in:
Antonis Stamatiou 2023-11-08 17:24:23 +02:00 committed by GitHub
parent 818a48190e
commit cfa48dd4c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 39 deletions

View File

@ -39,7 +39,7 @@ describe('components/AboutBuildModal', () => {
BuildEnterpriseReady: 'true',
Version: '3.6.0',
SchemaVersion: '77',
BuildNumber: '3.6.2',
BuildNumber: '123456',
SQLDriverName: 'Postgres',
BuildHash: 'abcdef1234567890',
BuildHashEnterprise: '0123456789abcdef',
@ -55,8 +55,9 @@ describe('components/AboutBuildModal', () => {
test('should match snapshot for enterprise edition', () => {
renderAboutBuildModal({config, license});
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: 3.6.2');
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: 3.6.0');
expect(screen.getByTestId('aboutModalDBVersionString')).toHaveTextContent('Database Schema Version: 77');
expect(screen.getByTestId('aboutModalBuildNumber')).toHaveTextContent('Build Number: 123456');
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=');
@ -75,8 +76,9 @@ describe('components/AboutBuildModal', () => {
};
renderAboutBuildModal({config: teamConfig, license: {}});
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: 3.6.2');
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: 3.6.0');
expect(screen.getByTestId('aboutModalDBVersionString')).toHaveTextContent('Database Schema Version: 77');
expect(screen.getByTestId('aboutModalBuildNumber')).toHaveTextContent('Build Number: 123456');
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=');
@ -111,7 +113,7 @@ describe('components/AboutBuildModal', () => {
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 n/a if this is a dev build', () => {
const sameBuildConfig = {
...config,
BuildEnterpriseReady: 'false',
@ -125,31 +127,7 @@ describe('components/AboutBuildModal', () => {
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: dev');
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', () => {
const differentBuildConfig = {
...config,
BuildEnterpriseReady: 'false',
BuildHashEnterprise: '',
Version: '3.6.0',
SchemaVersion: '77',
BuildNumber: '123',
};
renderAboutBuildModal({config: differentBuildConfig, license: {}});
expect(screen.getByTestId('aboutModalVersion')).toHaveTextContent('Mattermost Version: ci');
expect(screen.getByTestId('aboutModalDBVersionString')).toHaveTextContent('Database Schema Version: 77');
expect(screen.getByTestId('aboutModalBuildNumber')).toHaveTextContent('Build Number: 123');
expect(screen.getByTestId('aboutModalBuildNumber')).toHaveTextContent('Build Number: n/a');
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=');

View File

@ -170,24 +170,17 @@ export default class AboutBuildModal extends React.PureComponent<Props, State> {
</ExternalLink>
);
// Only show build number if it's a number (so only builds from Jenkins)
let buildnumber: JSX.Element | null = (
const buildnumber: JSX.Element | null = (
<div data-testid='aboutModalBuildNumber'>
<FormattedMessage
id='about.buildnumber'
defaultMessage='Build Number:'
/>
<span id='buildnumberString'>{'\u00a0' + config.BuildNumber}</span>
<span id='buildnumberString'>{'\u00a0' + (config.BuildNumber === 'dev' ? 'n/a' : config.BuildNumber)}</span>
</div>
);
if (isNaN(Number(config.BuildNumber))) {
buildnumber = null;
}
let mmversion: string | undefined = config.BuildNumber;
if (!isNaN(Number(config.BuildNumber))) {
mmversion = 'ci';
}
const mmversion: string | undefined = config.BuildNumber === 'dev' ? config.BuildNumber : config.Version;
return (
<Modal