mattermost-mobile/app/mm-redux/selectors/entities/general.test.js
Miguel Alatzar 2d81b497cf [MM-23520] Port mattermost-redux (#4088)
* Remove mattermost-redux

* Move mm-redux files into app/redux

* Add @redux path to tsconfig.json

* Fix imports

* Install missing dependencies

* Fix tsc errors

* Fix i18n_utils test

* Fix more imports

* Remove redux websocket

* Fix tests

* Rename @redux

* Apply changes from mattermost-redux PR 1103

* Remove mattermost-redux mention in template

* Add missing imports

* Rename app/redux/ to app/mm-redux/

* Remove test file

* Fix fetching Sidebar GM profiles

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-04-17 21:12:09 -07:00

343 lines
11 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import assert from 'assert';
import {General} from '../../constants';
import * as Selectors from '@mm-redux/selectors/entities/general';
describe('Selectors.General', () => {
it('canUploadFilesOnMobile', () => {
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), true);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'false',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), false);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'true',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), true);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableMobileFileUpload: 'false',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), false);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'false',
EnableMobileFileUpload: 'false',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), false);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'true',
EnableMobileFileUpload: 'false',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), false);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableMobileFileUpload: 'true',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), true);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'false',
EnableMobileFileUpload: 'true',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), false);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'true',
EnableMobileFileUpload: 'true',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), true);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'false',
},
license: {
IsLicensed: 'false',
Compliance: 'false',
},
},
},
}), false);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'true',
EnableMobileFileUpload: 'false',
},
license: {
IsLicensed: 'false',
Compliance: 'false',
},
},
},
}), true);
assert.equal(Selectors.canUploadFilesOnMobile({
entities: {
general: {
config: {
EnableFileAttachments: 'true',
EnableMobileFileUpload: 'false',
},
license: {
IsLicensed: 'true',
Compliance: 'false',
},
},
},
}), true);
});
it('canDownloadFilesOnMobile', () => {
assert.equal(Selectors.canDownloadFilesOnMobile({
entities: {
general: {
config: {
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), true);
assert.equal(Selectors.canDownloadFilesOnMobile({
entities: {
general: {
config: {
EnableMobileFileDownload: 'false',
},
license: {
IsLicensed: 'true',
Compliance: 'true,',
},
},
},
}), false);
assert.equal(Selectors.canDownloadFilesOnMobile({
entities: {
general: {
config: {
EnableMobileFileDownload: 'true',
},
license: {
IsLicensed: 'true',
Compliance: 'true',
},
},
},
}), true);
assert.equal(Selectors.canDownloadFilesOnMobile({
entities: {
general: {
config: {
EnableMobileFileDownload: 'false',
},
license: {
IsLicensed: 'false',
Compliance: 'false',
},
},
},
}), true);
assert.equal(Selectors.canDownloadFilesOnMobile({
entities: {
general: {
config: {
EnableMobileFileDownload: 'false',
},
license: {
IsLicensed: 'true',
Compliance: 'false',
},
},
},
}), true);
});
it('hasNewPermissions', () => {
const state = {
entities: {
general: {
serverVersion: '4.8.0',
},
},
};
assert.equal(Selectors.hasNewPermissions(state), false);
state.entities.general.serverVersion = '4.8.0.dev.123123';
assert.equal(Selectors.hasNewPermissions(state), true);
state.entities.general.serverVersion = '4.8.0.4.8.1.ffffff';
assert.equal(Selectors.hasNewPermissions(state), false);
state.entities.general.serverVersion = '4.8.0.3607.2f31498e967dc08ed38d7a2d7a306825.true';
assert.equal(Selectors.hasNewPermissions(state), true);
state.entities.general.serverVersion = '4.8.1.3607.2f31498e967dc08ed38d7a2d7a306825.true';
assert.equal(Selectors.hasNewPermissions(state), true);
state.entities.general.serverVersion = '4.9.0';
assert.equal(Selectors.hasNewPermissions(state), true);
state.entities.general.serverVersion = '4.10.0';
assert.equal(Selectors.hasNewPermissions(state), true);
state.entities.general.serverVersion = '5.10.0.dev';
assert.equal(Selectors.hasNewPermissions(state), true);
});
describe('getAutolinkedUrlSchemes', () => {
it('setting doesn\'t exist', () => {
const state = {
entities: {
general: {
config: {
},
},
},
};
assert.deepEqual(Selectors.getAutolinkedUrlSchemes(state), General.DEFAULT_AUTOLINKED_URL_SCHEMES);
assert.equal(Selectors.getAutolinkedUrlSchemes(state), Selectors.getAutolinkedUrlSchemes(state));
});
it('no custom url schemes', () => {
const state = {
entities: {
general: {
config: {
CustomUrlSchemes: '',
},
},
},
};
assert.deepEqual(Selectors.getAutolinkedUrlSchemes(state), General.DEFAULT_AUTOLINKED_URL_SCHEMES);
assert.equal(Selectors.getAutolinkedUrlSchemes(state), Selectors.getAutolinkedUrlSchemes(state));
});
it('one custom url scheme', () => {
const state = {
entities: {
general: {
config: {
CustomUrlSchemes: 'dns',
},
},
},
};
assert.deepEqual(Selectors.getAutolinkedUrlSchemes(state), [...General.DEFAULT_AUTOLINKED_URL_SCHEMES, 'dns']);
assert.equal(Selectors.getAutolinkedUrlSchemes(state), Selectors.getAutolinkedUrlSchemes(state));
});
it('multiple custom url schemes', () => {
const state = {
entities: {
general: {
config: {
CustomUrlSchemes: 'dns,steam,shttp',
},
},
},
};
assert.deepEqual(Selectors.getAutolinkedUrlSchemes(state), [...General.DEFAULT_AUTOLINKED_URL_SCHEMES, 'dns', 'steam', 'shttp']);
assert.equal(Selectors.getAutolinkedUrlSchemes(state), Selectors.getAutolinkedUrlSchemes(state));
});
});
});