summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-03-23 18:05:36 +0000
committerChristopher Speller <crspeller@gmail.com>2017-03-23 14:05:36 -0400
commit7d449e05562c76bb430efc1c36bd715675a84152 (patch)
treeb6d5bbd143fbd31483c9c931b5031aec280ace2d
parentc6ded1dbfd69a1da69add8d2b554f4b7dd0341b3 (diff)
downloadchat-7d449e05562c76bb430efc1c36bd715675a84152.tar.gz
chat-7d449e05562c76bb430efc1c36bd715675a84152.tar.bz2
chat-7d449e05562c76bb430efc1c36bd715675a84152.zip
PLT-5755: Infrastructure for Component Testing. (#5814)
This migrates the existing webapp tests to using Jest and Enzyme. The infrastructure is put in place for React component testing, and a few simple example component tests are implemented. This also adds snapshot testing of components, coverage checking for the webapp (although that is not yet integrated to Coveralls), and the ability to run npm run test:watch to automatically re-run affected tests when working on the webapp codebase.
-rw-r--r--.gitignore1
-rw-r--r--Makefile5
-rw-r--r--cmd/platform/test.go29
-rw-r--r--webapp/.babelrc7
-rw-r--r--webapp/client/client.jsx3
-rw-r--r--webapp/components/about_build_modal.jsx2
-rw-r--r--webapp/package.json52
-rw-r--r--webapp/tests/.eslintrc.json3
-rw-r--r--webapp/tests/client/client_admin.test.jsx (renamed from webapp/tests/client_admin.test.jsx)137
-rw-r--r--webapp/tests/client/client_channel.test.jsx (renamed from webapp/tests/client_channel.test.jsx)237
-rw-r--r--webapp/tests/client/client_command.test.jsx (renamed from webapp/tests/client_command.test.jsx)61
-rw-r--r--webapp/tests/client/client_emoji.test.jsx (renamed from webapp/tests/client_emoji.test.jsx)41
-rw-r--r--webapp/tests/client/client_file.test.jsx (renamed from webapp/tests/client_file.test.jsx)90
-rw-r--r--webapp/tests/client/client_general.test.jsx (renamed from webapp/tests/client_general.test.jsx)25
-rw-r--r--webapp/tests/client/client_hooks.test.jsx (renamed from webapp/tests/client_hooks.test.jsx)77
-rw-r--r--webapp/tests/client/client_oauth.test.jsx (renamed from webapp/tests/client_oauth.test.jsx)21
-rw-r--r--webapp/tests/client/client_post.test.jsx (renamed from webapp/tests/client_post.test.jsx)99
-rw-r--r--webapp/tests/client/client_preferences.test.jsx (renamed from webapp/tests/client_preferences.test.jsx)33
-rw-r--r--webapp/tests/client/client_reaction.test.jsx (renamed from webapp/tests/client_reaction.test.jsx)22
-rw-r--r--webapp/tests/client/client_team.test.jsx (renamed from webapp/tests/client_team.test.jsx)156
-rw-r--r--webapp/tests/client/client_user.test.jsx (renamed from webapp/tests/client_user.test.jsx)317
-rw-r--r--webapp/tests/client/client_websocket.test.jsx (renamed from webapp/tests/client_websocket.test.jsx)27
-rw-r--r--webapp/tests/components/__snapshots__/about_build_modal.test.jsx.snap334
-rw-r--r--webapp/tests/components/__snapshots__/spinner_button.test.jsx.snap27
-rw-r--r--webapp/tests/components/about_build_modal.test.jsx129
-rw-r--r--webapp/tests/components/backstage/components/__snapshots__/backstage_header.test.jsx.snap31
-rw-r--r--webapp/tests/components/backstage/components/backstage_header.test.jsx26
-rw-r--r--webapp/tests/components/spinner_button.test.jsx53
-rw-r--r--webapp/tests/components/suggestion/suggestion_box.test.jsx16
-rw-r--r--webapp/tests/emoticons.test.jsx47
-rw-r--r--webapp/tests/helpers/client-test-helper.jsx (renamed from webapp/tests/test_helper.jsx)4
-rw-r--r--webapp/tests/helpers/intl-test-helper.jsx22
-rw-r--r--webapp/tests/spinner_button.test.jsx19
-rw-r--r--webapp/tests/suggestion_box.test.jsx.disable20
-rw-r--r--webapp/tests/utils/emoticons.test.jsx36
-rw-r--r--webapp/tests/utils/formatting_at_mentions.test.jsx (renamed from webapp/tests/formatting_at_mentions.test.jsx)2
-rw-r--r--webapp/tests/utils/formatting_hashtags.test.jsx (renamed from webapp/tests/formatting_hashtags.test.jsx)2
-rw-r--r--webapp/tests/utils/formatting_imgs.test.jsx (renamed from webapp/tests/formatting_imgs.test.jsx)2
-rw-r--r--webapp/tests/utils/formatting_links.test.jsx (renamed from webapp/tests/formatting_links.test.jsx)2
-rw-r--r--webapp/tests/utils/utils_get_nearest_point.test.jsx (renamed from webapp/tests/utils_get_nearest_point.test.jsx)8
40 files changed, 1426 insertions, 799 deletions
diff --git a/.gitignore b/.gitignore
index b9775bad9..6ab3cf0a4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -78,6 +78,7 @@ enterprise
cover.out
ecover.out
*.test
+webapp/coverage
.agignore
.ctags
diff --git a/Makefile b/Makefile
index 79a5489b8..0d998d741 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-.PHONY: build package run stop run-client run-server stop-client stop-server restart restart-server restart-client start-docker clean-dist clean nuke check-style check-client-style check-server-style check-unit-tests test dist setup-mac prepare-enteprise run-client-tests setup-run-client-tests cleanup-run-client-tests test-client build-linux build-osx build-windows internal-test-client vet
+.PHONY: build package run stop run-client run-server stop-client stop-server restart restart-server restart-client start-docker clean-dist clean nuke check-style check-client-style check-server-style check-unit-tests test dist setup-mac prepare-enteprise run-client-tests setup-run-client-tests cleanup-run-client-tests test-client build-linux build-osx build-windows internal-test-web-client vet run-server-for-web-client-tests
# For golang 1.5.x compatibility (remove when we don't want to support it anymore)
export GO15VENDOREXPERIMENT=1
@@ -254,6 +254,9 @@ test-server: test-te test-ee
internal-test-web-client: start-docker prepare-enterprise
$(GO) run $(GOFLAGS) ./cmd/platform/*go test web_client_tests
+run-server-for-web-client-tests:
+ $(GO) run $(GOFLAGS) ./cmd/platform/*go test web_client_tests_server
+
test-client: start-docker prepare-enterprise
@echo Running client tests
diff --git a/cmd/platform/test.go b/cmd/platform/test.go
index 65a8528d0..cf67d6702 100644
--- a/cmd/platform/test.go
+++ b/cmd/platform/test.go
@@ -10,9 +10,12 @@ import (
"os/exec"
"github.com/mattermost/platform/api"
+ "github.com/mattermost/platform/api4"
"github.com/mattermost/platform/app"
"github.com/mattermost/platform/utils"
"github.com/spf13/cobra"
+ "os/signal"
+ "syscall"
)
var testCmd = &cobra.Command{
@@ -27,9 +30,16 @@ var runWebClientTestsCmd = &cobra.Command{
RunE: webClientTestsCmdF,
}
+var runServerForWebClientTestsCmd = &cobra.Command{
+ Use: "web_client_tests_server",
+ Short: "Run the server configured for running the web client tests against it",
+ RunE: serverForWebClientTestsCmdF,
+}
+
func init() {
testCmd.AddCommand(
runWebClientTestsCmd,
+ runServerForWebClientTestsCmd,
)
}
@@ -37,6 +47,7 @@ func webClientTestsCmdF(cmd *cobra.Command, args []string) error {
initDBCommandContextCobra(cmd)
utils.InitTranslations(utils.Cfg.LocalizationSettings)
api.InitRouter()
+ api4.InitApi(false)
api.InitApi()
setupClientTests()
app.StartServer()
@@ -46,6 +57,24 @@ func webClientTestsCmdF(cmd *cobra.Command, args []string) error {
return nil
}
+func serverForWebClientTestsCmdF(cmd *cobra.Command, args []string) error {
+ initDBCommandContextCobra(cmd)
+ utils.InitTranslations(utils.Cfg.LocalizationSettings)
+ api.InitRouter()
+ api4.InitApi(false)
+ api.InitApi()
+ setupClientTests()
+ app.StartServer()
+
+ c := make(chan os.Signal)
+ signal.Notify(c, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
+ <-c
+
+ app.StopServer()
+
+ return nil
+}
+
func setupClientTests() {
*utils.Cfg.TeamSettings.EnableOpenServer = true
*utils.Cfg.ServiceSettings.EnableCommands = false
diff --git a/webapp/.babelrc b/webapp/.babelrc
new file mode 100644
index 000000000..3c45d7307
--- /dev/null
+++ b/webapp/.babelrc
@@ -0,0 +1,7 @@
+{
+ "presets": [
+ "es2015",
+ "react",
+ "stage-0"
+ ]
+}
diff --git a/webapp/client/client.jsx b/webapp/client/client.jsx
index a95049f93..ecb5b18f6 100644
--- a/webapp/client/client.jsx
+++ b/webapp/client/client.jsx
@@ -2149,6 +2149,7 @@ export default class Client {
request.
post(`${this.getEmojiRoute()}/delete`).
set(this.defaultHeaders).
+ type('application/json').
accept('application/json').
send({id}).
end(this.handleResponse.bind(this, 'deleteEmoji', success, error));
@@ -2218,6 +2219,7 @@ export default class Client {
request.
post(`${this.getChannelNeededRoute(channelId)}/posts/${reaction.post_id}/reactions/save`).
set(this.defaultHeaders).
+ type('application/json').
accept('application/json').
send(reaction).
end(this.handleResponse.bind(this, 'saveReaction', success, error));
@@ -2229,6 +2231,7 @@ export default class Client {
request.
post(`${this.getChannelNeededRoute(channelId)}/posts/${reaction.post_id}/reactions/delete`).
set(this.defaultHeaders).
+ type('application/json').
accept('application/json').
send(reaction).
end(this.handleResponse.bind(this, 'deleteReaction', success, error));
diff --git a/webapp/components/about_build_modal.jsx b/webapp/components/about_build_modal.jsx
index b95d3a60a..71aee93c2 100644
--- a/webapp/components/about_build_modal.jsx
+++ b/webapp/components/about_build_modal.jsx
@@ -140,7 +140,7 @@ export default class AboutBuildModal extends React.Component {
id='about.version'
defaultMessage='Version:'
/>
- {version}
+ <span id='versionString'>{version}</span>
</div>
<div>
<FormattedMessage
diff --git a/webapp/package.json b/webapp/package.json
index f0b1b8bb2..9f53c848f 100644
--- a/webapp/package.json
+++ b/webapp/package.json
@@ -1,6 +1,8 @@
{
"name": "mattermost-webapp",
- "browser": {"./client/web_client.jsx": "./client/browser_web_client.jsx"},
+ "browser": {
+ "./client/web_client.jsx": "./client/browser_web_client.jsx"
+ },
"version": "0.0.1",
"private": true,
"dependencies": {
@@ -39,6 +41,7 @@
"devDependencies": {
"babel-core": "6.24.0",
"babel-eslint": "7.1.1",
+ "babel-jest": "19.0.0",
"babel-loader": "6.4.0",
"babel-plugin-transform-runtime": "6.23.0",
"babel-polyfill": "6.23.0",
@@ -48,6 +51,8 @@
"copy-webpack-plugin": "4.0.1",
"cross-env": "3.2.3",
"css-loader": "0.27.3",
+ "enzyme": "2.7.1",
+ "enzyme-to-json": "1.5.0",
"eslint": "3.17.1",
"eslint-plugin-react": "6.10.0",
"exports-loader": "0.6.4",
@@ -55,29 +60,66 @@
"file-loader": "0.10.1",
"html-loader": "0.4.5",
"html-webpack-plugin": "2.28.0",
+ "identity-obj-proxy": "3.0.0",
"image-webpack-loader": "3.2.0",
"imports-loader": "0.7.1",
+ "jest": "19.0.2",
+ "jest-cli": "19.0.2",
"jquery-deferred": "0.3.1",
"jsdom": "9.12.0",
"jsdom-global": "2.1.1",
"json-loader": "0.5.4",
- "mocha": "3.2.0",
- "mocha-jsdom": "1.1.0",
- "mocha-webpack": "0.7.0",
"node-sass": "4.5.0",
"raw-loader": "0.5.1",
"react-addons-test-utils": "15.4.2",
+ "react-dom": "15.4.2",
"sass-loader": "6.0.3",
"style-loader": "0.13.2",
"url-loader": "0.5.8",
"webpack": "2.2.1",
"webpack-node-externals": "1.5.4"
},
+ "jest": {
+ "snapshotSerializers": [
+ "<rootDir>/node_modules/enzyme-to-json/serializer"
+ ],
+ "testPathIgnorePatterns": [
+ "/node_modules/",
+ "/non_npm_dependencies/"
+ ],
+ "collectCoverageFrom": [
+ "actions/**/*.{js,jsx}",
+ "client/**/*.{js,jsx}",
+ "components/**/*.{js,jsx}",
+ "routes/**/*.{js,jsx}",
+ "stores/**/*.{js,jsx}",
+ "utils/**/*.{js,jsx}"
+ ],
+ "coverageReporters": [
+ "lcov",
+ "text-summary"
+ ],
+ "moduleNameMapper": {
+ "^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "identity-obj-proxy",
+ "^.+\\.(css|less|scss)$": "identity-obj-proxy",
+ "^.+\\.(json)$": "identity-obj-proxy"
+ },
+ "moduleDirectories": [
+ "",
+ "node_modules",
+ "non_npm_dependencies"
+ ],
+ "transformIgnorePatterns": [
+ "node_modules/(?!react-native|react-router)"
+ ]
+ },
"scripts": {
"check": "eslint --ext \".jsx\" --ignore-pattern node_modules --quiet .",
"build": "cross-env NODE_ENV=production webpack",
"run": "cross-env NODE_ENV=production webpack --progress --watch",
"run-fullmap": "webpack --progress --watch",
- "test": "mocha-webpack --webpack-config webpack.config.js \"**/*.test.jsx\""
+ "test": "jest",
+ "test:watch": "jest --watch",
+ "test:coverage": "jest --coverage"
}
}
diff --git a/webapp/tests/.eslintrc.json b/webapp/tests/.eslintrc.json
index c2d57abea..37f08e664 100644
--- a/webapp/tests/.eslintrc.json
+++ b/webapp/tests/.eslintrc.json
@@ -8,5 +8,8 @@
"no-unreachable": 0,
"new-cap": 0,
"max-nested-callbacks": 0
+ },
+ "env": {
+ "jest": true
}
}
diff --git a/webapp/tests/client_admin.test.jsx b/webapp/tests/client/client_admin.test.jsx
index 9d93668af..36feac8cc 100644
--- a/webapp/tests/client_admin.test.jsx
+++ b/webapp/tests/client/client_admin.test.jsx
@@ -1,59 +1,56 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-var assert = require('assert');
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Admin', function() {
- this.timeout(10000);
-
- it('Admin.reloadConfig', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.reloadConfig', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().reloadConfig(
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.recycleDatabaseConnection', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.recycleDatabaseConnection', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().recycleDatabaseConnection(
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.getComplianceReports', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.getComplianceReports', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().getComplianceReports(
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.saveComplianceReports', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.saveComplianceReports', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var job = {};
@@ -66,97 +63,97 @@ describe('Client.Admin', function() {
TestHelper.basicClient().saveComplianceReports(
job,
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.getLogs', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.getLogs', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().getLogs(
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.getServerAudits', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.getServerAudits', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().getServerAudits(
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.getConfig', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.getConfig', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().getConfig(
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.getAnalytics', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.getAnalytics', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().getAnalytics(
'standard',
null,
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.getTeamAnalytics', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.getTeamAnalytics', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().getTeamAnalytics(
TestHelper.basicTeam().id,
'standard',
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.saveConfig', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.saveConfig', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var config = {};
config.site_name = 'test';
@@ -164,18 +161,18 @@ describe('Client.Admin', function() {
TestHelper.basicClient().saveConfig(
config,
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.testEmail', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.testEmail', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var config = {};
config.site_name = 'test';
@@ -183,35 +180,35 @@ describe('Client.Admin', function() {
TestHelper.basicClient().testEmail(
config,
function() {
- done(new Error('should need system admin permissions'));
+ done.fail(new Error('should need system admin permissions'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.adminResetMfa', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.adminResetMfa', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().adminResetMfa(
TestHelper.basicUser().id,
function() {
- done(new Error('should need a license'));
+ done.fail(new Error('should need a license'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.adminResetPassword', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.adminResetPassword', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var user = TestHelper.basicUser();
@@ -223,44 +220,44 @@ describe('Client.Admin', function() {
},
function(err) {
// this should fail since you're not a system admin
- assert.equal(err.id, 'api.context.invalid_param.app_error');
+ expect(err.id).toBe('api.context.invalid_param.app_error');
done();
}
);
});
});
- it('License.getClientLicenceConfig', function(done) {
- TestHelper.initBasic(() => {
+ test('License.getClientLicenceConfig', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getClientLicenceConfig(
function(data) {
- assert.equal(data.IsLicensed, 'false');
+ expect(data.IsLicensed).toBe('false');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('License.removeLicenseFile', function(done) {
- TestHelper.initBasic(() => {
+ test('License.removeLicenseFile', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().removeLicenseFile(
function() {
- done(new Error('not enabled'));
+ done.fail(new Error('not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
});
- it('Admin.ldapSyncNow', function(done) {
- TestHelper.initBasic(() => {
+ test('Admin.ldapSyncNow', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().ldapSyncNow(
@@ -275,20 +272,20 @@ describe('Client.Admin', function() {
});
});
- /*it('License.uploadLicenseFile', function(done) {
- TestHelper.initBasic(() => {
+ test.skip('License.uploadLicenseFile', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().uploadLicenseFile(
'form data',
function() {
- done(new Error('not enabled'));
+ done.fail(new Error('not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.context.permissions.app_error');
+ expect(err.id).toBe('api.context.permissions.app_error');
done();
}
);
});
- });*/
+ });
});
diff --git a/webapp/tests/client_channel.test.jsx b/webapp/tests/client/client_channel.test.jsx
index e1ee6cf6d..dae70bca2 100644
--- a/webapp/tests/client_channel.test.jsx
+++ b/webapp/tests/client/client_channel.test.jsx
@@ -1,55 +1,52 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Channels', function() {
- this.timeout(100000);
-
- it('createChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('createChannel', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.fakeChannel();
channel.team_id = TestHelper.basicTeam().id;
TestHelper.basicClient().createChannel(
channel,
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.name, channel.name);
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.name).toBe(channel.name);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('createDirectChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('createDirectChannel', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().createUser(
TestHelper.fakeUser(),
function(user2) {
TestHelper.basicClient().createDirectChannel(
user2.id,
function(data) {
- assert.equal(data.id.length > 0, true);
+ expect(data.id.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('createGroupChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('createGroupChannel', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().createUser(
TestHelper.fakeUser(),
(user1) => {
@@ -59,84 +56,84 @@ describe('Client.Channels', function() {
TestHelper.basicClient().createGroupChannel(
[user2.id, user1.id],
function(data) {
- assert.equal(data.id.length > 0, true);
+ expect(data.id.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('updateChannel', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
channel.display_name = 'changed';
TestHelper.basicClient().updateChannel(
channel,
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.display_name, 'changed');
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.display_name).toEqual('changed');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateChannelHeader', function(done) {
- TestHelper.initBasic(() => {
+ test('updateChannelHeader', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
channel.display_name = 'changed';
TestHelper.basicClient().updateChannelHeader(
channel.id,
'new header',
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.header, 'new header');
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.header).toBe('new header');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateChannelPurpose', function(done) {
- TestHelper.initBasic(() => {
+ test('updateChannelPurpose', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
channel.display_name = 'changed';
TestHelper.basicClient().updateChannelPurpose(
channel.id,
'new purpose',
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.purpose, 'new purpose');
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.purpose).toEqual('new purpose');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateChannelNotifyProps', function(done) {
- TestHelper.initBasic(() => {
+ test('updateChannelNotifyProps', function(done) {
+ TestHelper.initBasic(done, () => {
var props = {};
props.channel_id = TestHelper.basicChannel().id;
props.user_id = TestHelper.basicUser().id;
@@ -144,34 +141,34 @@ describe('Client.Channels', function() {
TestHelper.basicClient().updateChannelNotifyProps(
props,
function(data) {
- assert.equal(data.desktop, 'all');
+ expect(data.desktop).toEqual('all');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('leaveChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('leaveChannel', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
TestHelper.basicClient().leaveChannel(
channel.id,
function(data) {
- assert.equal(data.id, channel.id);
+ expect(data.id).toEqual(channel.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('joinChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('joinChannel', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
TestHelper.basicClient().leaveChannel(
channel.id,
@@ -182,19 +179,19 @@ describe('Client.Channels', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('joinChannelByName', function(done) {
- TestHelper.initBasic(() => {
+ test('joinChannelByName', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
TestHelper.basicClient().leaveChannel(
channel.id,
@@ -205,35 +202,35 @@ describe('Client.Channels', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('deleteChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('deleteChannel', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
TestHelper.basicClient().deleteChannel(
channel.id,
function(data) {
- assert.equal(data.id, channel.id);
+ expect(data.id).toEqual(channel.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('viewChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('viewChannel', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
TestHelper.basicClient().viewChannel(
channel.id,
@@ -243,195 +240,195 @@ describe('Client.Channels', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateLastViewedAt', function(done) {
- TestHelper.initBasic(() => {
+ test('updateLastViewedAt', function(done) {
+ TestHelper.initBasic(done, () => {
var channel = TestHelper.basicChannel();
TestHelper.basicClient().updateLastViewedAt(
channel.id,
true,
function(data) {
- assert.equal(data.id, channel.id);
+ expect(data.id).toEqual(channel.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getChannels', function(done) {
- TestHelper.initBasic(() => {
+ test('getChannels', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getChannels(
function(data) {
- assert.equal(data.length, 3);
+ expect(data.length).toBe(3);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('getChannel', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getChannel(
TestHelper.basicChannel().id,
function(data) {
- assert.equal(TestHelper.basicChannel().id, data.channel.id);
+ expect(TestHelper.basicChannel().id).toEqual(data.channel.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getMoreChannels', function(done) {
- TestHelper.initBasic(() => {
+ test('getMoreChannels', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getMoreChannels(
function(data) {
- assert.equal(data.length, 0);
+ expect(data.length).toBe(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getMoreChannelsPage', function(done) {
- TestHelper.initBasic(() => {
+ test('getMoreChannelsPage', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getMoreChannelsPage(
0,
100,
function(data) {
- assert.equal(data.length, 0);
+ expect(data.length).toBe(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('searchMoreChannels', function(done) {
- TestHelper.initBasic(() => {
+ test('searchMoreChannels', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().searchMoreChannels(
'blargh',
function(data) {
- assert.equal(data.length, 0);
+ expect(data.length).toBe(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('autocompleteChannels', function(done) {
- TestHelper.initBasic(() => {
+ test('autocompleteChannels', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().autocompleteChannels(
TestHelper.basicChannel().name,
function(data) {
- assert.equal(data != null, true);
+ expect(data).not.toBeNull();
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getChannelCounts', function(done) {
- TestHelper.initBasic(() => {
+ test('getChannelCounts', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getChannelCounts(
function(data) {
- assert.equal(data.counts[TestHelper.basicChannel().id], 1);
+ expect(data.counts[TestHelper.basicChannel().id]).toBe(1);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getMyChannelMembers', function(done) {
- TestHelper.initBasic(() => {
+ test('getMyChannelMembers', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getMyChannelMembers(
function(data) {
- assert.equal(data.length > 0, true);
+ expect(data.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getMyChannelMembersForTeam', function(done) {
- TestHelper.initBasic(() => {
+ test('getMyChannelMembersForTeam', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getMyChannelMembersForTeam(
TestHelper.basicTeam().id,
function(data) {
- assert.equal(data.length > 0, true);
+ expect(data.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getChannelStats', function(done) {
- TestHelper.initBasic(() => {
+ test('getChannelStats', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getChannelStats(
TestHelper.basicChannel().id,
function(data) {
- assert.equal(data.member_count, 1);
+ expect(data.member_count).toBe(1);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getChannelMember', function(done) {
- TestHelper.initBasic(() => {
+ test('getChannelMember', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getChannelMember(
TestHelper.basicChannel().id,
TestHelper.basicUser().id,
function(data) {
- assert.equal(data.channel_id, TestHelper.basicChannel().id);
- assert.equal(data.user_id, TestHelper.basicUser().id);
+ expect(data.channel_id).toEqual(TestHelper.basicChannel().id);
+ expect(data.user_id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('addChannelMember', function(done) {
- TestHelper.initBasic(() => {
+ test('addChannelMember', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().createUserWithInvite(
TestHelper.fakeUser(),
null,
@@ -442,47 +439,47 @@ describe('Client.Channels', function() {
TestHelper.basicChannel().id,
user2.id,
function(data) {
- assert.equal(data.channel_id.length > 0, true);
+ expect(data.channel_id.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('removeChannelMember', function(done) {
- TestHelper.initBasic(() => {
+ test('removeChannelMember', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().removeChannelMember(
TestHelper.basicChannel().id,
TestHelper.basicUser().id,
function(data) {
- assert.equal(data.channel_id.length > 0, true);
+ expect(data.channel_id.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getChannelByName', function(done) {
- TestHelper.initBasic(() => {
+ test('getChannelByName', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getChannelByName(
TestHelper.basicChannel().name,
function(data) {
- assert.equal(data.name, TestHelper.basicChannel().name);
+ expect(data.name).toEqual(TestHelper.basicChannel().name);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
diff --git a/webapp/tests/client_command.test.jsx b/webapp/tests/client/client_command.test.jsx
index e6795e5d7..0b5f4bbb2 100644
--- a/webapp/tests/client_command.test.jsx
+++ b/webapp/tests/client/client_command.test.jsx
@@ -1,61 +1,58 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Commands', function() {
- this.timeout(100000);
-
- it('listCommands', function(done) {
- TestHelper.initBasic(() => {
+ test('listCommands', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().listCommands(
function(data) {
- assert.equal(data.length > 0, true);
+ expect(data.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('listTeamCommands', function(done) {
- TestHelper.initBasic(() => {
+ test('listTeamCommands', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().listTeamCommands(
function() {
- done(new Error('cmds not enabled'));
+ done.fail(new Error('cmds not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.command.disabled.app_error');
+ expect(err.id).toEqual('api.command.disabled.app_error');
done();
}
);
});
});
- it('executeCommand', function(done) {
- TestHelper.initBasic(() => {
+ test('executeCommand', function(done) {
+ TestHelper.initBasic(done, () => {
const args = {};
args.channel_id = TestHelper.basicChannel().id;
TestHelper.basicClient().executeCommand(
'/shrug',
args,
function(data) {
- assert.equal(data.response_type, 'in_channel');
+ expect(data.response_type).toEqual('in_channel');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('addCommand', function(done) {
- TestHelper.initBasic(() => {
+ test('addCommand', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var cmd = {};
@@ -72,18 +69,18 @@ describe('Client.Commands', function() {
TestHelper.basicClient().addCommand(
cmd,
function() {
- done(new Error('cmds not enabled'));
+ done.fail(new Error('cmds not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.command.disabled.app_error');
+ expect(err.id).toEqual('api.command.disabled.app_error');
done();
}
);
});
});
- it('editCommand', function(done) {
- TestHelper.initBasic(() => {
+ test('editCommand', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var cmd = {};
@@ -100,42 +97,42 @@ describe('Client.Commands', function() {
TestHelper.basicClient().editCommand(
cmd,
function() {
- done(new Error('cmds not enabled'));
+ done.fail(new Error('cmds not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.command.disabled.app_error');
+ expect(err.id).toEqual('api.command.disabled.app_error');
done();
}
);
});
});
- it('deleteCommand', function(done) {
- TestHelper.initBasic(() => {
+ test('deleteCommand', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().deleteCommand(
TestHelper.generateId(),
function() {
- done(new Error('cmds not enabled'));
+ done.fail(new Error('cmds not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.command.disabled.app_error');
+ expect(err.id).toEqual('api.command.disabled.app_error');
done();
}
);
});
});
- it('regenCommandToken', function(done) {
- TestHelper.initBasic(() => {
+ test('regenCommandToken', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().regenCommandToken(
TestHelper.generateId(),
function() {
- done(new Error('cmds not enabled'));
+ done.fail(new Error('cmds not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.command.disabled.app_error');
+ expect(err.id).toEqual('api.command.disabled.app_error');
done();
}
);
diff --git a/webapp/tests/client_emoji.test.jsx b/webapp/tests/client/client_emoji.test.jsx
index ddded4ff8..da7fab711 100644
--- a/webapp/tests/client_emoji.test.jsx
+++ b/webapp/tests/client/client_emoji.test.jsx
@@ -1,50 +1,47 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
const fs = require('fs');
describe('Client.Emoji', function() {
- this.timeout(100000);
-
const testGifFileName = 'testEmoji.gif';
- before(function() {
+ beforeAll(function() {
// write a temporary file so that we have something to upload for testing
const buffer = new Buffer('R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs=', 'base64');
const testGif = fs.openSync(testGifFileName, 'w+');
fs.writeFileSync(testGif, buffer);
});
- after(function() {
+ afterAll(function() {
fs.unlinkSync(testGifFileName);
});
- it('addEmoji', function(done) {
- TestHelper.initBasic(() => {
+ test('addEmoji', function(done) {
+ TestHelper.initBasic(done, () => {
const name = TestHelper.generateId();
TestHelper.basicClient().addEmoji(
{creator_id: TestHelper.basicUser().id, name},
fs.createReadStream(testGifFileName),
function(data) {
- assert.equal(data.name, name);
- assert.notEqual(data.id, null);
+ expect(data.name).toEqual(name);
+ expect(data.id).not.toBeNull();
- TestHelper.basicClient().deleteEmoji(data.id);
+ //TestHelper.basicClient().deleteEmoji(data.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('deleteEmoji', function(done) {
- TestHelper.initBasic(() => {
+ test('deleteEmoji', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().addEmoji(
{creator_id: TestHelper.basicUser().id, name: TestHelper.generateId()},
fs.createReadStream(testGifFileName),
@@ -55,19 +52,19 @@ describe('Client.Emoji', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('listEmoji', function(done) {
- TestHelper.initBasic(() => {
+ test('listEmoji', function(done) {
+ TestHelper.initBasic(done, () => {
const name = TestHelper.generateId();
TestHelper.basicClient().addEmoji(
{creator_id: TestHelper.basicUser().id, name},
@@ -75,7 +72,7 @@ describe('Client.Emoji', function() {
function() {
TestHelper.basicClient().listEmoji(
function(data) {
- assert(data.length > 0, true);
+ expect(data.length).toBeGreaterThan(0);
let found = false;
for (const emoji of data) {
@@ -88,16 +85,16 @@ describe('Client.Emoji', function() {
if (found) {
done();
} else {
- done(new Error('test emoji wasn\'t returned'));
+ done.fail(new Error('test emoji wasn\'t returned'));
}
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
diff --git a/webapp/tests/client_file.test.jsx b/webapp/tests/client/client_file.test.jsx
index 171df701b..aa0704b5a 100644
--- a/webapp/tests/client_file.test.jsx
+++ b/webapp/tests/client/client_file.test.jsx
@@ -1,17 +1,14 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
const fs = require('fs');
describe('Client.File', function() {
- this.timeout(100000);
-
const testGifFileName = 'testFile.gif';
- before(function() {
+ beforeAll(function() {
// write a temporary file so that we have something to upload for testing
const buffer = new Buffer('R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs=', 'base64');
@@ -19,12 +16,12 @@ describe('Client.File', function() {
fs.writeFileSync(testGif, buffer);
});
- after(function() {
+ afterAll(function() {
fs.unlinkSync(testGifFileName);
});
- it('uploadFile', function(done) {
- TestHelper.initBasic(() => {
+ test('uploadFile', function(done) {
+ TestHelper.initBasic(done, () => {
const clientId = TestHelper.generateId();
TestHelper.basicClient().uploadFile(
@@ -33,21 +30,21 @@ describe('Client.File', function() {
TestHelper.basicChannel().id,
clientId,
function(resp) {
- assert.equal(resp.file_infos.length, 1);
- assert.equal(resp.client_ids.length, 1);
- assert.equal(resp.client_ids[0], clientId);
+ expect(resp.file_infos.length).toBe(1);
+ expect(resp.client_ids.length).toBe(1);
+ expect(resp.client_ids[0]).toEqual(clientId);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getFile', function(done) {
- TestHelper.initBasic(() => {
+ test('getFile', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().uploadFile(
fs.createReadStream(testGifFileName),
testGifFileName,
@@ -60,19 +57,19 @@ describe('Client.File', function() {
done();
},
function(err2) {
- done(new Error(err2.message));
+ done.fail(new Error(err2.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getFileThumbnail', function(done) {
- TestHelper.initBasic(() => {
+ test('getFileThumbnail', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().uploadFile(
fs.createReadStream(testGifFileName),
testGifFileName,
@@ -85,19 +82,19 @@ describe('Client.File', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getFilePreview', function(done) {
- TestHelper.initBasic(() => {
+ test('getFilePreview', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().uploadFile(
fs.createReadStream(testGifFileName),
testGifFileName,
@@ -110,19 +107,19 @@ describe('Client.File', function() {
done();
},
function(err2) {
- done(new Error(err2.message));
+ done.fail(new Error(err2.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getFileInfo', function(done) {
- TestHelper.initBasic(() => {
+ test('getFileInfo', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().uploadFile(
fs.createReadStream(testGifFileName),
testGifFileName,
@@ -134,25 +131,26 @@ describe('Client.File', function() {
TestHelper.basicClient().getFileInfo(
fileId,
function(info) {
- assert.equal(info.id, fileId);
- assert.equal(info.name, testGifFileName);
+ expect(info.id).toEqual(fileId);
+ expect(info.name).toEqual(testGifFileName);
done();
},
function(err2) {
- done(new Error(err2.message));
+ done.fail(new Error(err2.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPublicLink', function(done) {
- TestHelper.initBasic(() => {
+ test('getPublicLink', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().uploadFile(
fs.createReadStream(testGifFileName),
testGifFileName,
@@ -166,12 +164,12 @@ describe('Client.File', function() {
TestHelper.basicClient().createPost(
post,
function(data) {
- assert.deepEqual(data.file_ids, post.file_ids);
+ expect(data.file_ids).toEqual(post.file_ids);
TestHelper.basicClient().getPublicLink(
post.file_ids[0],
function() {
- done(new Error('public links should be disabled by default'));
+ done.fail(new Error('public links should be disabled by default'));
// request.
// get(link).
@@ -182,31 +180,31 @@ describe('Client.File', function() {
// done();
// },
// function(err4) {
- // done(new Error(err4.message));
+ // done.fail(new Error(err4.message));
// }
// ));
},
function() {
done();
- // done(new Error(err3.message));
+ // done.fail(new Error(err3.message));
}
);
},
function(err2) {
- done(new Error(err2.message));
+ done.fail(new Error(err2.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getFileInfosForPost', function(done) {
- TestHelper.initBasic(() => {
+ test('getFileInfosForPost', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().uploadFile(
fs.createReadStream(testGifFileName),
testGifFileName,
@@ -220,29 +218,29 @@ describe('Client.File', function() {
TestHelper.basicClient().createPost(
post,
function(data) {
- assert.deepEqual(data.file_ids, post.file_ids);
+ expect(data.file_ids).toEqual(post.file_ids);
TestHelper.basicClient().getFileInfosForPost(
post.channel_id,
data.id,
function(files) {
- assert.equal(files.length, 1);
- assert.equal(files[0].id, resp.file_infos[0].id);
+ expect(files.length).toBe(1);
+ expect(files[0].id).toEqual(resp.file_infos[0].id);
done();
},
function(err3) {
- done(new Error(err3.message));
+ done.fail(new Error(err3.message));
}
);
},
function(err2) {
- done(new Error(err2.message));
+ done.fail(new Error(err2.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
diff --git a/webapp/tests/client_general.test.jsx b/webapp/tests/client/client_general.test.jsx
index 709583c11..ddfb9d4ca 100644
--- a/webapp/tests/client_general.test.jsx
+++ b/webapp/tests/client/client_general.test.jsx
@@ -1,42 +1,39 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-var assert = require('assert');
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.General', function() {
- this.timeout(10000);
-
- it('General.getClientConfig', function(done) {
- TestHelper.initBasic(() => {
+ test('General.getClientConfig', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getClientConfig(
function(data) {
- assert.equal(data.SiteName, 'Mattermost');
+ expect(data.SiteName).toEqual('Mattermost');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('General.getPing', function(done) {
- TestHelper.initBasic(() => {
+ test('General.getPing', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getPing(
function(data) {
- assert.equal(data.version.length > 0, true);
+ expect(data.version.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('General.logClientError', function(done) {
- TestHelper.initBasic(() => {
+ test('General.logClientError', function(done) {
+ TestHelper.initBasic(done, () => {
var config = {};
config.site_name = 'test';
TestHelper.basicClient().logClientError('this is a test');
diff --git a/webapp/tests/client_hooks.test.jsx b/webapp/tests/client/client_hooks.test.jsx
index db72bce18..79aa0b53d 100644
--- a/webapp/tests/client_hooks.test.jsx
+++ b/webapp/tests/client/client_hooks.test.jsx
@@ -1,14 +1,11 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Hooks', function() {
- this.timeout(100000);
-
- it('addIncomingHook', function(done) {
- TestHelper.initBasic(() => {
+ test('addIncomingHook', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var hook = {};
@@ -19,18 +16,18 @@ describe('Client.Hooks', function() {
TestHelper.basicClient().addIncomingHook(
hook,
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.incoming_webhook.disabled.app_error');
+ expect(err.id).toBe('api.incoming_webhook.disabled.app_error');
done();
}
);
});
});
- it('updateIncomingHook', function(done) {
- TestHelper.initBasic(() => {
+ test('updateIncomingHook', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var hook = {};
@@ -41,49 +38,49 @@ describe('Client.Hooks', function() {
TestHelper.basicClient().updateIncomingHook(
hook,
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.incoming_webhook.disabled.app_error');
+ expect(err.id).toBe('api.incoming_webhook.disabled.app_error');
done();
}
);
});
});
- it('deleteIncomingHook', function(done) {
- TestHelper.initBasic(() => {
+ test('deleteIncomingHook', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().deleteIncomingHook(
TestHelper.generateId(),
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.incoming_webhook.disabled.app_error');
+ expect(err.id).toBe('api.incoming_webhook.disabled.app_error');
done();
}
);
});
});
- it('listIncomingHooks', function(done) {
- TestHelper.initBasic(() => {
+ test('listIncomingHooks', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().listIncomingHooks(
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.incoming_webhook.disabled.app_error');
+ expect(err.id).toBe('api.incoming_webhook.disabled.app_error');
done();
}
);
});
});
- it('addOutgoingHook', function(done) {
- TestHelper.initBasic(() => {
+ test('addOutgoingHook', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var hook = {};
@@ -94,65 +91,65 @@ describe('Client.Hooks', function() {
TestHelper.basicClient().addOutgoingHook(
hook,
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.outgoing_webhook.disabled.app_error');
+ expect(err.id).toBe('api.outgoing_webhook.disabled.app_error');
done();
}
);
});
});
- it('deleteOutgoingHook', function(done) {
- TestHelper.initBasic(() => {
+ test('deleteOutgoingHook', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().deleteOutgoingHook(
TestHelper.generateId(),
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.outgoing_webhook.disabled.app_error');
+ expect(err.id).toBe('api.outgoing_webhook.disabled.app_error');
done();
}
);
});
});
- it('listOutgoingHooks', function(done) {
- TestHelper.initBasic(() => {
+ test('listOutgoingHooks', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().listOutgoingHooks(
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.outgoing_webhook.disabled.app_error');
+ expect(err.id).toBe('api.outgoing_webhook.disabled.app_error');
done();
}
);
});
});
- it('regenOutgoingHookToken', function(done) {
- TestHelper.initBasic(() => {
+ test('regenOutgoingHookToken', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().regenOutgoingHookToken(
TestHelper.generateId(),
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.outgoing_webhook.disabled.app_error');
+ expect(err.id).toBe('api.outgoing_webhook.disabled.app_error');
done();
}
);
});
});
- it('updateOutgoingHook', function(done) {
- TestHelper.initBasic(() => {
+ test('updateOutgoingHook', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var hook = {};
@@ -163,10 +160,10 @@ describe('Client.Hooks', function() {
TestHelper.basicClient().updateOutgoingHook(
hook,
function() {
- done(new Error('hooks not enabled'));
+ done.fail(new Error('hooks not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.outgoing_webhook.disabled.app_error');
+ expect(err.id).toBe('api.outgoing_webhook.disabled.app_error');
done();
}
);
diff --git a/webapp/tests/client_oauth.test.jsx b/webapp/tests/client/client_oauth.test.jsx
index a9a6bd919..555b38438 100644
--- a/webapp/tests/client_oauth.test.jsx
+++ b/webapp/tests/client/client_oauth.test.jsx
@@ -1,14 +1,11 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.OAuth', function() {
- this.timeout(100000);
-
- it('registerOAuthApp', function(done) {
- TestHelper.initBasic(() => {
+ test('registerOAuthApp', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var app = {};
@@ -20,18 +17,18 @@ describe('Client.OAuth', function() {
TestHelper.basicClient().registerOAuthApp(
app,
function() {
- done(new Error('not enabled'));
+ done.fail(new Error('not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.oauth.register_oauth_app.turn_off.app_error');
+ expect(err.id).toBe('api.oauth.register_oauth_app.turn_off.app_error');
done();
}
);
});
});
- it('allowOAuth2', function(done) {
- TestHelper.initBasic(() => {
+ test('allowOAuth2', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().allowOAuth2(
@@ -41,10 +38,10 @@ describe('Client.OAuth', function() {
'state',
'scope',
function() {
- done(new Error('not enabled'));
+ done.fail(new Error('not enabled'));
},
function(err) {
- assert.equal(err.id, 'api.oauth.allow_oauth.turn_off.app_error');
+ expect(err.id).toBe('api.oauth.allow_oauth.turn_off.app_error');
done();
}
);
diff --git a/webapp/tests/client_post.test.jsx b/webapp/tests/client/client_post.test.jsx
index afe10931f..bad72c8b0 100644
--- a/webapp/tests/client_post.test.jsx
+++ b/webapp/tests/client/client_post.test.jsx
@@ -1,63 +1,60 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Posts', function() {
- this.timeout(100000);
-
- it('createPost', function(done) {
- TestHelper.initBasic(() => {
+ test('createPost', function(done) {
+ TestHelper.initBasic(done, () => {
var post = TestHelper.fakePost();
post.channel_id = TestHelper.basicChannel().id;
TestHelper.basicClient().createPost(
post,
function(data) {
- assert.equal(data.id.length > 0, true);
+ expect(data.id.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPostById', function(done) {
- TestHelper.initBasic(() => {
+ test('getPostById', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getPostById(
TestHelper.basicPost().id,
function(data) {
- assert.equal(data.order[0], TestHelper.basicPost().id);
+ expect(data.order[0]).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPost', function(done) {
- TestHelper.initBasic(() => {
+ test('getPost', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getPost(
TestHelper.basicChannel().id,
TestHelper.basicPost().id,
function(data) {
- assert.equal(data.order[0], TestHelper.basicPost().id);
+ expect(data.order[0]).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updatePost', function(done) {
- TestHelper.initBasic(() => {
+ test('updatePost', function(done) {
+ TestHelper.initBasic(done, () => {
var post = TestHelper.basicPost();
post.message = 'new message';
post.channel_id = TestHelper.basicChannel().id;
@@ -65,83 +62,83 @@ describe('Client.Posts', function() {
TestHelper.basicClient().updatePost(
post,
function(data) {
- assert.equal(data.id.length > 0, true);
+ expect(data.id.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('deletePost', function(done) {
- TestHelper.initBasic(() => {
+ test('deletePost', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().deletePost(
TestHelper.basicChannel().id,
TestHelper.basicPost().id,
function(data) {
- assert.equal(data.id, TestHelper.basicPost().id);
+ expect(data.id).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('searchPost', function(done) {
- TestHelper.initBasic(() => {
+ test('searchPost', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().search(
'unit test',
false,
function(data) {
- assert.equal(data.order[0], TestHelper.basicPost().id);
+ expect(data.order[0]).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPostsPage', function(done) {
- TestHelper.initBasic(() => {
+ test('getPostsPage', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getPostsPage(
TestHelper.basicChannel().id,
0,
10,
function(data) {
- assert.equal(data.order[0], TestHelper.basicPost().id);
+ expect(data.order[0]).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPosts', function(done) {
- TestHelper.initBasic(() => {
+ test('getPosts', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getPosts(
TestHelper.basicChannel().id,
0,
function(data) {
- assert.equal(data.order[0], TestHelper.basicPost().id);
+ expect(data.order[0]).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPostsBefore', function(done) {
- TestHelper.initBasic(() => {
+ test('getPostsBefore', function(done) {
+ TestHelper.initBasic(done, () => {
var post = TestHelper.fakePost();
post.channel_id = TestHelper.basicChannel().id;
@@ -154,23 +151,23 @@ describe('Client.Posts', function() {
0,
10,
function(data) {
- assert.equal(data.order[0], TestHelper.basicPost().id);
+ expect(data.order[0]).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPostsAfter', function(done) {
- TestHelper.initBasic(() => {
+ test('getPostsAfter', function(done) {
+ TestHelper.initBasic(done, () => {
var post = TestHelper.fakePost();
post.channel_id = TestHelper.basicChannel().id;
@@ -183,23 +180,23 @@ describe('Client.Posts', function() {
0,
10,
function(data) {
- assert.equal(data.order[0], rpost.id);
+ expect(data.order[0]).toEqual(rpost.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getFlaggedPosts', function(done) {
- TestHelper.initBasic(() => {
+ test('getFlaggedPosts', function(done) {
+ TestHelper.initBasic(done, () => {
var pref = {};
pref.user_id = TestHelper.basicUser().id;
pref.category = 'flagged_post';
@@ -216,16 +213,16 @@ describe('Client.Posts', function() {
0,
2,
function(data) {
- assert.equal(data.order[0], TestHelper.basicPost().id);
+ expect(data.order[0]).toEqual(TestHelper.basicPost().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
diff --git a/webapp/tests/client_preferences.test.jsx b/webapp/tests/client/client_preferences.test.jsx
index 95b026bfc..9a8f75b95 100644
--- a/webapp/tests/client_preferences.test.jsx
+++ b/webapp/tests/client/client_preferences.test.jsx
@@ -1,29 +1,26 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Preferences', function() {
- this.timeout(100000);
-
- it('getAllPreferences', function(done) {
- TestHelper.initBasic(() => {
+ test('getAllPreferences', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getAllPreferences(
function(data) {
- assert.equal(data[0].category, 'tutorial_step');
- assert.equal(data[0].user_id, TestHelper.basicUser().id);
+ expect(data[0].category).toBe('tutorial_step');
+ expect(data[0].user_id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('savePreferences', function(done) {
- TestHelper.initBasic(() => {
+ test('savePreferences', function(done) {
+ TestHelper.initBasic(done, () => {
var perf = {};
perf.user_id = TestHelper.basicUser().id;
perf.category = 'test';
@@ -36,27 +33,27 @@ describe('Client.Preferences', function() {
TestHelper.basicClient().savePreferences(
perfs,
function(data) {
- assert.equal(data, true);
+ expect(data).toBe(true);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getPreferenceCategory', function(done) {
- TestHelper.initBasic(() => {
+ test('getPreferenceCategory', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getPreferenceCategory(
'tutorial_step',
function(data) {
- assert.equal(data[0].category, 'tutorial_step');
- assert.equal(data[0].user_id, TestHelper.basicUser().id);
+ expect(data[0].category).toBe('tutorial_step');
+ expect(data[0].user_id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
diff --git a/webapp/tests/client_reaction.test.jsx b/webapp/tests/client/client_reaction.test.jsx
index fba3fd43b..a7b1f3389 100644
--- a/webapp/tests/client_reaction.test.jsx
+++ b/webapp/tests/client/client_reaction.test.jsx
@@ -1,13 +1,11 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Reaction', function() {
- this.timeout(100000);
-
- it('saveListReaction', function(done) {
- TestHelper.initBasic(() => {
+ test('saveListReaction', function(done) {
+ TestHelper.initBasic(done, () => {
const channelId = TestHelper.basicChannel().id;
const postId = TestHelper.basicPost().id;
@@ -31,23 +29,23 @@ describe('Client.Reaction', function() {
reactions[0].emoji_name === reaction.emoji_name) {
done();
} else {
- done(new Error('test reaction wasn\'t returned'));
+ done.fail(new Error('test reaction wasn\'t returned'));
}
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('deleteReaction', function(done) {
- TestHelper.initBasic(() => {
+ test('deleteReaction', function(done) {
+ TestHelper.initBasic(done, () => {
const channelId = TestHelper.basicChannel().id;
const postId = TestHelper.basicPost().id;
@@ -68,12 +66,12 @@ describe('Client.Reaction', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
diff --git a/webapp/tests/client_team.test.jsx b/webapp/tests/client/client_team.test.jsx
index 20610f676..76bdd2776 100644
--- a/webapp/tests/client_team.test.jsx
+++ b/webapp/tests/client/client_team.test.jsx
@@ -1,168 +1,165 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.Team', function() {
- this.timeout(100000);
-
- it('findTeamByName', function(done) {
- TestHelper.initBasic(() => {
+ test('findTeamByName', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().findTeamByName(
TestHelper.basicTeam().name,
function(data) {
- assert.equal(data, true);
+ expect(data).toBe(true);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('createTeam', function(done) {
+ test('createTeam', function(done) {
var team = TestHelper.fakeTeam();
- TestHelper.initBasic(() => {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().createTeam(
team,
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.name, team.name);
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.name).toEqual(team.name);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getAllTeams', function(done) {
- TestHelper.initBasic(() => {
+ test('getAllTeams', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getAllTeams(
function(data) {
- assert.equal(data[TestHelper.basicTeam().id].name, TestHelper.basicTeam().name);
+ expect(data[TestHelper.basicTeam().id].name).toEqual(TestHelper.basicTeam().name);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getAllTeamListings', function(done) {
- TestHelper.initBasic(() => {
+ test('getAllTeamListings', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getAllTeamListings(
function(data) {
- assert.equal(data != null, true);
+ expect(data).not.toBeNull();
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getMyTeam', function(done) {
- TestHelper.initBasic(() => {
+ test('getMyTeam', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getMyTeam(
function(data) {
- assert.equal(data.name, TestHelper.basicTeam().name);
+ expect(data.name).toEqual(TestHelper.basicTeam().name);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getMyTeamMembers', function(done) {
- TestHelper.initBasic(() => {
+ test('getMyTeamMembers', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getMyTeamMembers(
function(data) {
- assert.equal(data.length > 0, true);
+ expect(data.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getTeamMembers', function(done) {
- TestHelper.initBasic(() => {
+ test('getTeamMembers', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getTeamMembers(
TestHelper.basicTeam().id,
0,
100,
function(data) {
- assert.equal(data.length > 0, true);
+ expect(data.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getTeamMember', function(done) {
- TestHelper.initBasic(() => {
+ test('getTeamMember', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getTeamMember(
TestHelper.basicTeam().id,
TestHelper.basicUser().id,
function(data) {
- assert.equal(data.user_id, TestHelper.basicUser().id);
- assert.equal(data.team_id, TestHelper.basicTeam().id);
+ expect(data.user_id).toEqual(TestHelper.basicUser().id);
+ expect(data.team_id).toEqual(TestHelper.basicTeam().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getTeamStats', function(done) {
- TestHelper.initBasic(() => {
+ test('getTeamStats', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getTeamStats(
TestHelper.basicTeam().id,
function(data) {
- assert.equal(data.total_member_count > 0, true);
+ expect(data.total_member_count).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getTeamMembersByIds', function(done) {
- TestHelper.initBasic(() => {
+ test('getTeamMembersByIds', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getTeamMembersByIds(
TestHelper.basicTeam().id,
[TestHelper.basicUser().id],
function(data) {
- assert.equal(data[0].user_id, TestHelper.basicUser().id);
- assert.equal(data[0].team_id, TestHelper.basicTeam().id);
+ expect(data[0].user_id).toEqual(TestHelper.basicUser().id);
+ expect(data[0].team_id).toEqual(TestHelper.basicTeam().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('inviteMembers', function(done) {
- TestHelper.initBasic(() => {
+ test('inviteMembers', function(done) {
+ TestHelper.initBasic(done, () => {
var data = {};
data.invites = [];
var invite = {};
@@ -174,54 +171,54 @@ describe('Client.Team', function() {
TestHelper.basicClient().inviteMembers(
data,
function(dataBack) {
- assert.equal(dataBack.invites.length, 1);
+ expect(dataBack.invites.length).toBe(1);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateTeam', function(done) {
- TestHelper.initBasic(() => {
+ test('updateTeam', function(done) {
+ TestHelper.initBasic(done, () => {
var team = TestHelper.basicTeam();
team.display_name = 'test_updated';
TestHelper.basicClient().updateTeam(
team,
function(data) {
- assert.equal(data.display_name, 'test_updated');
+ expect(data.display_name).toBe('test_updated');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateTeamDescription', function(done) {
- TestHelper.initBasic(() => {
+ test('updateTeamDescription', function(done) {
+ TestHelper.initBasic(done, () => {
var team = TestHelper.basicTeam();
team.description = 'test_updated';
TestHelper.basicClient().updateTeam(
team,
function(data) {
- assert.equal(data.description, 'test_updated');
+ expect(data.description).toBe('test_updated');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('addUserToTeam', function(done) {
- TestHelper.initBasic(() => {
+ test('addUserToTeam', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().createUser(
TestHelper.fakeUser(),
function(user2) {
@@ -229,54 +226,54 @@ describe('Client.Team', function() {
'',
user2.id,
function(data) {
- assert.equal(data.user_id, user2.id);
+ expect(data.user_id).toEqual(user2.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('removeUserFromTeam', function(done) {
- TestHelper.initBasic(() => {
+ test('removeUserFromTeam', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().removeUserFromTeam(
'',
TestHelper.basicUser().id,
function(data) {
- assert.equal(data.user_id, TestHelper.basicUser().id);
+ expect(data.user_id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getInviteInfo', function(done) {
- TestHelper.initBasic(() => {
+ test('getInviteInfo', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getInviteInfo(
TestHelper.basicTeam().invite_id,
function(data) {
- assert.equal(data.display_name.length > 0, true);
+ expect(data.display_name.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateTeamMemberRoles', function(done) {
- TestHelper.initBasic(() => {
+ test('updateTeamMemberRoles', function(done) {
+ TestHelper.initBasic(done, () => {
var user = TestHelper.basicUser();
var team = TestHelper.basicTeam();
@@ -288,23 +285,22 @@ describe('Client.Team', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getTeamByName', function(done) {
- TestHelper.initBasic(() => {
+ test('getTeamByName', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getTeamByName(
TestHelper.basicTeam().name,
function(data) {
- console.log(data);
- assert.equal(data.name, TestHelper.basicTeam().name);
+ expect(data.name).toEqual(TestHelper.basicTeam().name);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
diff --git a/webapp/tests/client_user.test.jsx b/webapp/tests/client/client_user.test.jsx
index 643640b59..5f299670d 100644
--- a/webapp/tests/client_user.test.jsx
+++ b/webapp/tests/client/client_user.test.jsx
@@ -1,102 +1,99 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import assert from 'assert';
-import TestHelper from './test_helper.jsx';
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
describe('Client.User', function() {
- this.timeout(100000);
-
- it('getMe', function(done) {
- TestHelper.initBasic(() => {
+ test('getMe', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getMe(
function(data) {
- assert.equal(data.id, TestHelper.basicUser().id);
+ expect(data.id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getUser', function(done) {
- TestHelper.initBasic(() => {
+ test('getUser', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getUser(
TestHelper.basicUser().id,
function(data) {
- assert.equal(data.id, TestHelper.basicUser().id);
+ expect(data.id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getByUsername', function(done) {
- TestHelper.initBasic(() => {
+ test('getByUsername', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getByUsername(
TestHelper.basicUser().username,
function(data) {
- assert.equal(data.username, TestHelper.basicUser().username);
+ expect(data.username).toEqual(TestHelper.basicUser().username);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getByEmail', function(done) {
- TestHelper.initBasic(() => {
+ test('getByEmail', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getByEmail(
TestHelper.basicUser().email,
function(data) {
- assert.equal(data.email, TestHelper.basicUser().email);
+ expect(data.email).toEqual(TestHelper.basicUser().email);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getInitialLoad', function(done) {
- TestHelper.initBasic(() => {
+ test('getInitialLoad', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getInitialLoad(
function(data) {
- assert.equal(data.user.id.length > 0, true);
+ expect(data.user.id.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('createUser', function(done) {
+ test('createUser', function(done) {
var client = TestHelper.createClient();
var user = TestHelper.fakeUser();
client.createUser(
user,
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.email, user.email);
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.email).toEqual(user.email);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
- it('loginByEmail', function(done) {
+ test('loginByEmail', function(done) {
var client = TestHelper.createClient();
var user = TestHelper.fakeUser();
client.createUser(
@@ -107,49 +104,49 @@ describe('Client.User', function() {
user.password,
null,
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.email, user.email);
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.email).toEqual(user.email);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
- it('loginById', function(done) {
+ test('loginById', function(done) {
var client = TestHelper.createClient();
var user = TestHelper.fakeUser();
client.createUser(
user,
function(newUser) {
- assert.equal(user.email, newUser.email);
+ expect(user.email).toEqual(newUser.email);
client.loginById(
newUser.id,
user.password,
null,
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.email, user.email);
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.email).toEqual(user.email);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
- it('loginByUsername', function(done) {
+ test('loginByUsername', function(done) {
var client = TestHelper.createClient();
var user = TestHelper.fakeUser();
client.createUser(
@@ -160,41 +157,41 @@ describe('Client.User', function() {
user.password,
null,
function(data) {
- assert.equal(data.id.length > 0, true);
- assert.equal(data.email, user.email);
+ expect(data.id.length).toBeGreaterThan(0);
+ expect(data.email).toEqual(user.email);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
- it('updateUser', function(done) {
- TestHelper.initBasic(() => {
+ test('updateUser', function(done) {
+ TestHelper.initBasic(done, () => {
var user = TestHelper.basicUser();
user.nickname = 'updated';
TestHelper.basicClient().updateUser(
user, null,
function(data) {
- assert.equal(data.nickname, 'updated');
+ expect(data.nickname).toBe('updated');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updatePassword', function(done) {
- TestHelper.initBasic(() => {
+ test('updatePassword', function(done) {
+ TestHelper.initBasic(done, () => {
var user = TestHelper.basicUser();
TestHelper.basicClient().updatePassword(
@@ -202,18 +199,18 @@ describe('Client.User', function() {
user.password,
'update_password',
function(data) {
- assert.equal(data.user_id, user.id);
+ expect(data.user_id).toEqual(user.id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateUserNotifyProps', function(done) {
- TestHelper.initBasic(() => {
+ test('updateUserNotifyProps', function(done) {
+ TestHelper.initBasic(done, () => {
var user = TestHelper.basicUser();
var notifyProps = {
@@ -231,25 +228,26 @@ describe('Client.User', function() {
TestHelper.basicClient().updateUserNotifyProps(
notifyProps,
function(data) {
- assert.equal(data.notify_props.email, 'false');
+ expect(data.notify_props.email).toBe('false');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateUserRoles', function(done) {
- TestHelper.initBasic(() => {
+ test('updateUserRoles', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var user = TestHelper.basicUser();
TestHelper.basicClient().updateUserRoles(
user.id,
'',
function() {
- done(new Error('Not supposed to work'));
+ done.fail(new Error('Not supposed to work'));
},
function() {
done();
@@ -258,43 +256,43 @@ describe('Client.User', function() {
});
});
- it('updateActive', function(done) {
- TestHelper.initBasic(() => {
+ test('updateActive', function(done) {
+ TestHelper.initBasic(done, () => {
const user = TestHelper.basicUser();
TestHelper.basicClient().updateActive(
user.id,
false,
function(data) {
- assert.ok(data.delete_at > 0);
+ expect(data.delete_at).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('sendPasswordReset', function(done) {
- TestHelper.initBasic(() => {
+ test('sendPasswordReset', function(done) {
+ TestHelper.initBasic(done, () => {
var user = TestHelper.basicUser();
TestHelper.basicClient().sendPasswordReset(
user.email,
function(data) {
- assert.equal(data.email, user.email);
+ expect(data.email).toEqual(user.email);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('resetPassword', function(done) {
- TestHelper.initBasic(() => {
+ test('resetPassword', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().resetPassword(
@@ -305,15 +303,15 @@ describe('Client.User', function() {
},
function(err) {
// this should fail since you're not a system admin
- assert.equal(err.id, 'api.context.invalid_param.app_error');
+ expect(err.id).toBe('api.context.invalid_param.app_error');
done();
}
);
});
});
- it('emailToOAuth', function(done) {
- TestHelper.initBasic(() => {
+ test('emailToOAuth', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var user = TestHelper.basicUser();
@@ -327,33 +325,33 @@ describe('Client.User', function() {
},
function(err) {
// this should fail since you're not a system admin
- assert.equal(err.id, 'api.user.check_user_password.invalid.app_error');
+ expect(err.id).toBe('api.user.check_user_password.invalid.app_error');
done();
}
);
});
});
- it('oauthToEmail', function(done) {
- TestHelper.initBasic(() => {
+ test('oauthToEmail', function(done) {
+ TestHelper.initBasic(done, () => {
var user = TestHelper.basicUser();
TestHelper.basicClient().oauthToEmail(
user.email,
'new_password',
function(data) {
- assert.equal(data.follow_link.length > 0, true);
+ expect(data.follow_link.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('emailToLdap', function(done) {
- TestHelper.initBasic(() => {
+ test('emailToLdap', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var user = TestHelper.basicUser();
@@ -373,8 +371,8 @@ describe('Client.User', function() {
});
});
- it('ldapToEmail', function(done) {
- TestHelper.initBasic(() => {
+ test('ldapToEmail', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
var user = TestHelper.basicUser();
@@ -387,47 +385,48 @@ describe('Client.User', function() {
throw Error('shouldnt work');
},
function(err) {
- assert.equal(err.id, 'api.user.ldap_to_email.not_ldap_account.app_error');
+ expect(err.id).toBe('api.user.ldap_to_email.not_ldap_account.app_error');
done();
}
);
});
});
- it('logout', function(done) {
- TestHelper.initBasic(() => {
+ test('logout', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().logout(
function(data) {
- assert.equal(data.user_id, TestHelper.basicUser().id);
+ expect(data.user_id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('checkMfa', function(done) {
- TestHelper.initBasic(() => {
+ test('checkMfa', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().checkMfa(
TestHelper.generateId(),
function(data) {
- assert.equal(data.mfa_required, 'false');
+ expect(data.mfa_required).toBe('false');
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('generateMfaSecret', function(done) {
- TestHelper.initBasic(() => {
+ test('generateMfaSecret', function(done) {
+ TestHelper.initBasic(done, () => {
+ TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().generateMfaSecret(
function() {
- done(new Error('not enabled'));
+ done.fail(new Error('not enabled'));
},
function() {
done();
@@ -436,224 +435,224 @@ describe('Client.User', function() {
});
});
- it('getSessions', function(done) {
- TestHelper.initBasic(() => {
+ test('getSessions', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getSessions(
TestHelper.basicUser().id,
function(data) {
- assert.equal(data[0].user_id, TestHelper.basicUser().id);
+ expect(data[0].user_id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('revokeSession', function(done) {
- TestHelper.initBasic(() => {
+ test('revokeSession', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getSessions(
TestHelper.basicUser().id,
function(sessions) {
TestHelper.basicClient().revokeSession(
sessions[0].id,
function(data) {
- assert.equal(data.id, sessions[0].id);
+ expect(data.id).toEqual(sessions[0].id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getAudits', function(done) {
- TestHelper.initBasic(() => {
+ test('getAudits', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getAudits(
TestHelper.basicUser().id,
function(data) {
- assert.equal(data[0].user_id, TestHelper.basicUser().id);
+ expect(data[0].user_id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getProfiles', function(done) {
- TestHelper.initBasic(() => {
+ test('getProfiles', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getProfiles(
0,
100,
function(data) {
- assert.equal(Object.keys(data).length > 0, true);
+ expect(Object.keys(data).length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getProfilesInTeam', function(done) {
- TestHelper.initBasic(() => {
+ test('getProfilesInTeam', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getProfilesInTeam(
TestHelper.basicTeam().id,
0,
100,
function(data) {
- assert.equal(data[TestHelper.basicUser().id].id, TestHelper.basicUser().id);
+ expect(data[TestHelper.basicUser().id].id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getProfilesByIds', function(done) {
- TestHelper.initBasic(() => {
+ test('getProfilesByIds', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getProfilesByIds(
[TestHelper.basicUser().id],
function(data) {
- assert.equal(data[TestHelper.basicUser().id].id, TestHelper.basicUser().id);
+ expect(data[TestHelper.basicUser().id].id).toEqual(TestHelper.basicUser().id);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getProfilesInChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('getProfilesInChannel', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getProfilesInChannel(
TestHelper.basicChannel().id,
0,
100,
function(data) {
- assert.equal(Object.keys(data).length > 0, true);
+ expect(Object.keys(data).length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getProfilesNotInChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('getProfilesNotInChannel', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().getProfilesNotInChannel(
TestHelper.basicChannel().id,
0,
100,
function(data) {
- assert.equal(Object.keys(data).length > 0, false);
+ expect(Object.keys(data).length).not.toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('searchUsers', function(done) {
- TestHelper.initBasic(() => {
+ test('searchUsers', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().searchUsers(
'uid',
TestHelper.basicTeam().id,
{},
function(data) {
- assert.equal(data.length > 0, true);
+ expect(data.length).toBeGreaterThan(0);
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('autocompleteUsersInChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('autocompleteUsersInChannel', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().autocompleteUsersInChannel(
'uid',
TestHelper.basicChannel().id,
function(data) {
- assert.equal(data != null, true);
+ expect(data).not.toBeNull();
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('autocompleteUsersInTeam', function(done) {
- TestHelper.initBasic(() => {
+ test('autocompleteUsersInTeam', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().autocompleteUsersInTeam(
'uid',
function(data) {
- assert.equal(data != null, true);
+ expect(data).not.toBeNull();
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('autocompleteUsers', function(done) {
- TestHelper.initBasic(() => {
+ test('autocompleteUsers', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().autocompleteUsers(
'uid',
function(data) {
- assert.equal(data != null, true);
+ expect(data).not.toBeNull();
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('getStatusesByIds', function(done) {
- TestHelper.initBasic(() => {
+ test('getStatusesByIds', function(done) {
+ TestHelper.initBasic(done, () => {
var ids = [];
ids.push(TestHelper.basicUser().id);
TestHelper.basicClient().getStatusesByIds(
ids,
function(data) {
- assert.equal(data[TestHelper.basicUser().id] != null, true);
+ expect(data[TestHelper.basicUser().id]).not.toBeNull();
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('setActiveChannel', function(done) {
- TestHelper.initBasic(() => {
+ test('setActiveChannel', function(done) {
+ TestHelper.initBasic(done, () => {
var ids = [];
ids.push(TestHelper.basicUser().id);
@@ -663,31 +662,31 @@ describe('Client.User', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('verifyEmail', function(done) {
- TestHelper.initBasic(() => {
+ test('verifyEmail', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().verifyEmail(
'junk',
'junk',
function() {
- done(new Error('should be invalid'));
+ done.fail(new Error('should be invalid'));
},
function(err) {
- assert.equal(err.id, 'api.context.invalid_param.app_error');
+ expect(err.id).toBe('api.context.invalid_param.app_error');
done();
}
);
});
});
- it('resendVerification', function(done) {
- TestHelper.initBasic(() => {
+ test('resendVerification', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().resendVerification(
TestHelper.basicUser().email,
@@ -695,20 +694,20 @@ describe('Client.User', function() {
done();
},
function(err) {
- done(new Error(err.message));
+ done.fail(new Error(err.message));
}
);
});
});
- it('updateMfa', function(done) {
- TestHelper.initBasic(() => {
+ test('updateMfa', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error
TestHelper.basicClient().updateMfa(
'junk',
true,
function() {
- done(new Error('not enabled'));
+ done.fail(new Error('not enabled'));
},
function() {
done();
diff --git a/webapp/tests/client_websocket.test.jsx b/webapp/tests/client/client_websocket.test.jsx
index 6535610e3..9a754c345 100644
--- a/webapp/tests/client_websocket.test.jsx
+++ b/webapp/tests/client/client_websocket.test.jsx
@@ -1,49 +1,46 @@
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-/*
-var assert = require('assert');
-import TestHelper from './test_helper.jsx';
-describe('Client.WebSocket', function() {
- this.timeout(10000);
+import TestHelper from 'tests/helpers/client-test-helper.jsx';
- it('WebSocket.getStatusesByIds', function(done) {
- TestHelper.initBasic(() => {
+describe.skip('Client.WebSocket', function() {
+ test('WebSocket.getStatusesByIds', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicWebSocketClient().getStatusesByIds(
[TestHelper.basicUser().id],
function(resp) {
TestHelper.basicWebSocketClient().close();
- assert.equal(resp.data[TestHelper.basicUser().id], 'online');
+ expect(resp.data[TestHelper.basicUser().id]).toBe('online');
done();
}
);
}, true);
});
- it('WebSocket.getStatuses', function(done) {
- TestHelper.initBasic(() => {
+ test('WebSocket.getStatuses', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicWebSocketClient().getStatuses(
function(resp) {
TestHelper.basicWebSocketClient().close();
- assert.equal(resp.data != null, true);
+ expect(resp.data).not.toBe(null);
done();
}
);
}, true);
});
- it('WebSocket.userTyping', function(done) {
- TestHelper.initBasic(() => {
+ test('WebSocket.userTyping', function(done) {
+ TestHelper.initBasic(done, () => {
TestHelper.basicWebSocketClient().userTyping(
TestHelper.basicChannel().id,
'',
function(resp) {
TestHelper.basicWebSocketClient().close();
- assert.equal(resp.status, 'OK');
+ expect(resp.status).toBe('OK');
done();
}
);
}, true);
});
-});*/
+});
diff --git a/webapp/tests/components/__snapshots__/about_build_modal.test.jsx.snap b/webapp/tests/components/__snapshots__/about_build_modal.test.jsx.snap
new file mode 100644
index 000000000..27eefa273
--- /dev/null
+++ b/webapp/tests/components/__snapshots__/about_build_modal.test.jsx.snap
@@ -0,0 +1,334 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`components/AboutBuildModal should match snapshot for enterprise edition 1`] = `
+<Modal
+ animation={true}
+ autoFocus={true}
+ backdrop={true}
+ bsClass="modal"
+ dialogClassName="about-modal"
+ dialogComponentClass={[Function]}
+ enforceFocus={true}
+ keyboard={true}
+ manager={
+ ModalManager {
+ "containers": Array [],
+ "data": Array [],
+ "handleContainerOverflow": true,
+ "hideSiblingNodes": true,
+ "modals": Array [],
+ }
+ }
+ onHide={[Function]}
+ renderBackdrop={[Function]}
+ restoreFocus={true}
+ show={true}
+>
+ <ModalHeader
+ aria-label="Close"
+ bsClass="modal-header"
+ closeButton={true}
+ >
+ <ModalTitle
+ bsClass="modal-title"
+ componentClass="h4"
+ >
+ <FormattedMessage
+ defaultMessage="About Mattermost"
+ id="about.title"
+ values={Object {}}
+ />
+ </ModalTitle>
+ </ModalHeader>
+ <ModalBody
+ bsClass="modal-body"
+ componentClass="div"
+ >
+ <div
+ className="about-modal__content"
+ >
+ <div
+ className="about-modal__logo"
+ >
+ <span
+ className="icon"
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px'viewBox='0 0 500 500' style='enable-background:new 0 0 500 500;' xml:space='preserve'> <style type='text/css'> .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#222222;} </style> <g id='XMLID_1_'> <g id='XMLID_3_'> <path id='XMLID_4_' class='st0' d='M396.9,47.7l2.6,53.1c43,47.5,60,114.8,38.6,178.1c-32,94.4-137.4,144.1-235.4,110.9 S51.1,253.1,83,158.7C104.5,95.2,159.2,52,222.5,40.5l34.2-40.4C150-2.8,49.3,63.4,13.3,169.9C-31,300.6,39.1,442.5,169.9,486.7 s272.6-25.8,316.9-156.6C522.7,223.9,483.1,110.3,396.9,47.7z'/> </g> <path id='XMLID_2_' class='st0' d='M335.6,204.3l-1.8-74.2l-1.5-42.7l-1-37c0,0,0.2-17.8-0.4-22c-0.1-0.9-0.4-1.6-0.7-2.2 c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.1-0.2c-0.7-1.2-1.8-2.1-3.1-2.6c-1.4-0.5-2.9-0.4-4.2,0.2c0,0-0.1,0-0.1,0 c-0.2,0.1-0.3,0.1-0.4,0.2c-0.6,0.3-1.2,0.7-1.8,1.3c-3,3-13.7,17.2-13.7,17.2l-23.2,28.8l-27.1,33l-46.5,57.8 c0,0-21.3,26.6-16.6,59.4s29.1,48.7,48,55.1c18.9,6.4,48,8.5,71.6-14.7C336.4,238.4,335.6,204.3,335.6,204.3z'/> </g> </svg>",
+ }
+ }
+ />
+ </div>
+ <div>
+ <h3
+ className="about-modal__title"
+ >
+ Mattermost
+
+ <FormattedMessage
+ defaultMessage="Enterprise Edition"
+ id="about.teamEditiont1"
+ values={Object {}}
+ />
+ </h3>
+ <p
+ className="about-modal__subtitle padding-bottom"
+ >
+ <FormattedMessage
+ defaultMessage="Modern communication from behind your firewall."
+ id="about.enterpriseEditionSt"
+ values={Object {}}
+ />
+ </p>
+ <div
+ className="form-group less"
+ >
+ <div>
+ <FormattedMessage
+ defaultMessage="Version:"
+ id="about.version"
+ values={Object {}}
+ />
+ <span
+ id="versionString"
+ >
+  3.6.0  (3.6.2)
+ </span>
+ </div>
+ <div>
+ <FormattedMessage
+ defaultMessage="Database:"
+ id="about.database"
+ values={Object {}}
+ />
+  Postgres
+ </div>
+ </div>
+ </div>
+ </div>
+ <div
+ className="about-modal__footer"
+ >
+ <div>
+ <FormattedMessage
+ defaultMessage="Learn more about Enterprise Edition at "
+ id="about.enterpriseEditionLearn"
+ values={Object {}}
+ />
+ <a
+ href="http://about.mattermost.com/"
+ rel="noopener noreferrer"
+ target="_blank"
+ >
+ about.mattermost.com
+ </a>
+ </div>
+ <div
+ className="form-group about-modal__copyright"
+ >
+ <FormattedMessage
+ defaultMessage="Copyright 2016 Mattermost, Inc. All rights reserved"
+ id="about.copyright"
+ values={Object {}}
+ />
+ </div>
+ </div>
+ <div
+ className="about-modal__hash form-group padding-top x2"
+ >
+ <p>
+ <FormattedMessage
+ defaultMessage="Build Hash:"
+ id="about.hash"
+ values={Object {}}
+ />
+  
+ abcdef1234567890
+ <br />
+ <FormattedMessage
+ defaultMessage="EE Build Hash:"
+ id="about.hashee"
+ values={Object {}}
+ />
+  
+ 0123456789abcdef
+ </p>
+ <p>
+ <FormattedMessage
+ defaultMessage="Build Date:"
+ id="about.date"
+ values={Object {}}
+ />
+  
+ 21 January 2017
+ </p>
+ </div>
+ </ModalBody>
+</Modal>
+`;
+
+exports[`components/AboutBuildModal should match snapshot for team edition 1`] = `
+<Modal
+ animation={true}
+ autoFocus={true}
+ backdrop={true}
+ bsClass="modal"
+ dialogClassName="about-modal"
+ dialogComponentClass={[Function]}
+ enforceFocus={true}
+ keyboard={true}
+ manager={
+ ModalManager {
+ "containers": Array [],
+ "data": Array [],
+ "handleContainerOverflow": true,
+ "hideSiblingNodes": true,
+ "modals": Array [],
+ }
+ }
+ onHide={[Function]}
+ renderBackdrop={[Function]}
+ restoreFocus={true}
+ show={true}
+>
+ <ModalHeader
+ aria-label="Close"
+ bsClass="modal-header"
+ closeButton={true}
+ >
+ <ModalTitle
+ bsClass="modal-title"
+ componentClass="h4"
+ >
+ <FormattedMessage
+ defaultMessage="About Mattermost"
+ id="about.title"
+ values={Object {}}
+ />
+ </ModalTitle>
+ </ModalHeader>
+ <ModalBody
+ bsClass="modal-body"
+ componentClass="div"
+ >
+ <div
+ className="about-modal__content"
+ >
+ <div
+ className="about-modal__logo"
+ >
+ <span
+ className="icon"
+ dangerouslySetInnerHTML={
+ Object {
+ "__html": "<svg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px'viewBox='0 0 500 500' style='enable-background:new 0 0 500 500;' xml:space='preserve'> <style type='text/css'> .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#222222;} </style> <g id='XMLID_1_'> <g id='XMLID_3_'> <path id='XMLID_4_' class='st0' d='M396.9,47.7l2.6,53.1c43,47.5,60,114.8,38.6,178.1c-32,94.4-137.4,144.1-235.4,110.9 S51.1,253.1,83,158.7C104.5,95.2,159.2,52,222.5,40.5l34.2-40.4C150-2.8,49.3,63.4,13.3,169.9C-31,300.6,39.1,442.5,169.9,486.7 s272.6-25.8,316.9-156.6C522.7,223.9,483.1,110.3,396.9,47.7z'/> </g> <path id='XMLID_2_' class='st0' d='M335.6,204.3l-1.8-74.2l-1.5-42.7l-1-37c0,0,0.2-17.8-0.4-22c-0.1-0.9-0.4-1.6-0.7-2.2 c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.1-0.2c-0.7-1.2-1.8-2.1-3.1-2.6c-1.4-0.5-2.9-0.4-4.2,0.2c0,0-0.1,0-0.1,0 c-0.2,0.1-0.3,0.1-0.4,0.2c-0.6,0.3-1.2,0.7-1.8,1.3c-3,3-13.7,17.2-13.7,17.2l-23.2,28.8l-27.1,33l-46.5,57.8 c0,0-21.3,26.6-16.6,59.4s29.1,48.7,48,55.1c18.9,6.4,48,8.5,71.6-14.7C336.4,238.4,335.6,204.3,335.6,204.3z'/> </g> </svg>",
+ }
+ }
+ />
+ </div>
+ <div>
+ <h3
+ className="about-modal__title"
+ >
+ Mattermost
+
+ <FormattedMessage
+ defaultMessage="Team Edition"
+ id="about.teamEditiont0"
+ values={Object {}}
+ />
+ </h3>
+ <p
+ className="about-modal__subtitle padding-bottom"
+ >
+ <FormattedMessage
+ defaultMessage="All your team communication in one place, instantly searchable and accessible anywhere."
+ id="about.teamEditionSt"
+ values={Object {}}
+ />
+ </p>
+ <div
+ className="form-group less"
+ >
+ <div>
+ <FormattedMessage
+ defaultMessage="Version:"
+ id="about.version"
+ values={Object {}}
+ />
+ <span
+ id="versionString"
+ >
+  3.6.0  (3.6.2)
+ </span>
+ </div>
+ <div>
+ <FormattedMessage
+ defaultMessage="Database:"
+ id="about.database"
+ values={Object {}}
+ />
+  Postgres
+ </div>
+ </div>
+ </div>
+ </div>
+ <div
+ className="about-modal__footer"
+ >
+ <div>
+ <FormattedMessage
+ defaultMessage="Join the Mattermost community at "
+ id="about.teamEditionLearn"
+ values={Object {}}
+ />
+ <a
+ href="http://www.mattermost.org/"
+ rel="noopener noreferrer"
+ target="_blank"
+ >
+ mattermost.org
+ </a>
+ </div>
+ <div
+ className="form-group about-modal__copyright"
+ >
+ <FormattedMessage
+ defaultMessage="Copyright 2016 Mattermost, Inc. All rights reserved"
+ id="about.copyright"
+ values={Object {}}
+ />
+ </div>
+ </div>
+ <div
+ className="about-modal__hash form-group padding-top x2"
+ >
+ <p>
+ <FormattedMessage
+ defaultMessage="Build Hash:"
+ id="about.hash"
+ values={Object {}}
+ />
+  
+ abcdef1234567890
+ <br />
+ <FormattedMessage
+ defaultMessage="EE Build Hash:"
+ id="about.hashee"
+ values={Object {}}
+ />
+  
+ </p>
+ <p>
+ <FormattedMessage
+ defaultMessage="Build Date:"
+ id="about.date"
+ values={Object {}}
+ />
+  
+ 21 January 2017
+ </p>
+ </div>
+ </ModalBody>
+</Modal>
+`;
diff --git a/webapp/tests/components/__snapshots__/spinner_button.test.jsx.snap b/webapp/tests/components/__snapshots__/spinner_button.test.jsx.snap
new file mode 100644
index 000000000..e05132ddd
--- /dev/null
+++ b/webapp/tests/components/__snapshots__/spinner_button.test.jsx.snap
@@ -0,0 +1,27 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`components/SpinnerButton should match snapshot with children 1`] = `
+<button
+ className="btn btn-primary"
+>
+ <span
+ id="child1"
+ />
+ <span
+ id="child2"
+ />
+</button>
+`;
+
+exports[`components/SpinnerButton should match snapshot with required props 1`] = `
+<button
+ className="btn btn-primary"
+/>
+`;
+
+exports[`components/SpinnerButton should match snapshot with spinning 1`] = `
+<img
+ className="spinner-button__gif"
+ src={Object {}}
+/>
+`;
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();
+ });
+});
diff --git a/webapp/tests/components/backstage/components/__snapshots__/backstage_header.test.jsx.snap b/webapp/tests/components/backstage/components/__snapshots__/backstage_header.test.jsx.snap
new file mode 100644
index 000000000..7a0ae9e0c
--- /dev/null
+++ b/webapp/tests/components/backstage/components/__snapshots__/backstage_header.test.jsx.snap
@@ -0,0 +1,31 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`components/backstage/components/BackstageHeader should match snapshot with children 1`] = `
+<div
+ className="backstage-header"
+>
+ <h1>
+ <div>
+ Child 1
+ </div>
+ <span
+ className="backstage-header__divider"
+ >
+ <i
+ className="fa fa-angle-right"
+ />
+ </span>
+ <div>
+ Child 2
+ </div>
+ </h1>
+</div>
+`;
+
+exports[`components/backstage/components/BackstageHeader should match snapshot without children 1`] = `
+<div
+ className="backstage-header"
+>
+ <h1 />
+</div>
+`;
diff --git a/webapp/tests/components/backstage/components/backstage_header.test.jsx b/webapp/tests/components/backstage/components/backstage_header.test.jsx
new file mode 100644
index 000000000..ef70ad242
--- /dev/null
+++ b/webapp/tests/components/backstage/components/backstage_header.test.jsx
@@ -0,0 +1,26 @@
+// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import React from 'react';
+import {shallow} from 'enzyme';
+
+import BackstageHeader from 'components/backstage/components/backstage_header.jsx';
+
+describe('components/backstage/components/BackstageHeader', () => {
+ test('should match snapshot without children', () => {
+ const wrapper = shallow(
+ <BackstageHeader/>
+ );
+ expect(wrapper).toMatchSnapshot();
+ });
+
+ test('should match snapshot with children', () => {
+ const wrapper = shallow(
+ <BackstageHeader>
+ <div>{'Child 1'}</div>
+ <div>{'Child 2'}</div>
+ </BackstageHeader>
+ );
+ expect(wrapper).toMatchSnapshot();
+ });
+});
diff --git a/webapp/tests/components/spinner_button.test.jsx b/webapp/tests/components/spinner_button.test.jsx
new file mode 100644
index 000000000..39e93071d
--- /dev/null
+++ b/webapp/tests/components/spinner_button.test.jsx
@@ -0,0 +1,53 @@
+// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import React from 'react';
+import {shallow, mount} from 'enzyme';
+
+import SpinnerButton from 'components/spinner_button.jsx';
+
+describe('components/SpinnerButton', () => {
+ test('should match snapshot with required props', () => {
+ const wrapper = shallow(
+ <SpinnerButton
+ spinning={false}
+ />
+ );
+ expect(wrapper).toMatchSnapshot();
+ });
+
+ test('should match snapshot with spinning', () => {
+ const wrapper = shallow(
+ <SpinnerButton
+ spinning={true}
+ />
+ );
+ expect(wrapper).toMatchSnapshot();
+ });
+
+ test('should match snapshot with children', () => {
+ const wrapper = shallow(
+ <SpinnerButton
+ spinning={false}
+ >
+ <span id='child1'/>
+ <span id='child2'/>
+ </SpinnerButton>
+ );
+ expect(wrapper).toMatchSnapshot();
+ });
+
+ test('should handle onClick', (done) => {
+ function onClick() {
+ done();
+ }
+
+ const wrapper = mount(
+ <SpinnerButton
+ spinning={false}
+ onClick={onClick}
+ />
+ );
+ wrapper.find('button').first().props().onClick();
+ });
+});
diff --git a/webapp/tests/components/suggestion/suggestion_box.test.jsx b/webapp/tests/components/suggestion/suggestion_box.test.jsx
new file mode 100644
index 000000000..fe7f0e132
--- /dev/null
+++ b/webapp/tests/components/suggestion/suggestion_box.test.jsx
@@ -0,0 +1,16 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import SuggestionBox from 'components/suggestion/suggestion_box.jsx';
+
+describe('components/SuggestionBox', function() {
+ test('findOverlap', () => {
+ expect(SuggestionBox.findOverlap('', 'blue')).toBe('');
+ expect(SuggestionBox.findOverlap('red', '')).toBe('');
+ expect(SuggestionBox.findOverlap('red', 'blue')).toBe('');
+ expect(SuggestionBox.findOverlap('red', 'dog')).toBe('d');
+ expect(SuggestionBox.findOverlap('red', 'education')).toBe('ed');
+ expect(SuggestionBox.findOverlap('red', 'reduce')).toBe('red');
+ expect(SuggestionBox.findOverlap('black', 'ack')).toBe('ack');
+ });
+});
diff --git a/webapp/tests/emoticons.test.jsx b/webapp/tests/emoticons.test.jsx
deleted file mode 100644
index b6ca0512d..000000000
--- a/webapp/tests/emoticons.test.jsx
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-import assert from 'assert';
-
-import EmojiStore from 'stores/emoji_store.jsx';
-import * as Emoticons from 'utils/emoticons.jsx';
-
-describe('Emoticons', function() {
- this.timeout(100000);
-
- it('handleEmoticons', function(done) {
- const emojis = EmojiStore.getEmojis();
-
- assert.equal(
- Emoticons.handleEmoticons(':goat: :dash:', new Map(), emojis),
- '$MM_EMOTICON0 $MM_EMOTICON1',
- 'should replace emoticons with tokens'
- );
-
- assert.equal(
- Emoticons.handleEmoticons(':goat::dash:', new Map(), emojis),
- '$MM_EMOTICON0$MM_EMOTICON1',
- 'should replace emoticons not separated by whitespace'
- );
-
- assert.equal(
- Emoticons.handleEmoticons('/:goat:..:dash:)', new Map(), emojis),
- '/$MM_EMOTICON0..$MM_EMOTICON1)',
- 'should replace emoticons separated by punctuation'
- );
-
- assert.equal(
- Emoticons.handleEmoticons('asdf:goat:asdf:dash:asdf', new Map(), emojis),
- 'asdf$MM_EMOTICON0asdf$MM_EMOTICON1asdf',
- 'should replace emoticons separated by text'
- );
-
- assert.equal(
- Emoticons.handleEmoticons(':asdf: :goat : : dash:', new Map(), emojis),
- ':asdf: :goat : : dash:',
- 'shouldn\'t replace invalid emoticons'
- );
-
- done();
- });
-});
diff --git a/webapp/tests/test_helper.jsx b/webapp/tests/helpers/client-test-helper.jsx
index 79788948b..24aa5e281 100644
--- a/webapp/tests/test_helper.jsx
+++ b/webapp/tests/helpers/client-test-helper.jsx
@@ -103,11 +103,11 @@ class TestHelperClass {
return post;
}
- initBasic = (callback, connectWS) => {
+ initBasic = (done, callback, connectWS) => {
this.basicc = this.createClient();
function throwerror(err) {
- throw err;
+ done.fail(new Error(err.message));
}
var d1 = jqd.Deferred();
diff --git a/webapp/tests/helpers/intl-test-helper.jsx b/webapp/tests/helpers/intl-test-helper.jsx
new file mode 100644
index 000000000..49094f8d4
--- /dev/null
+++ b/webapp/tests/helpers/intl-test-helper.jsx
@@ -0,0 +1,22 @@
+// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import {mount, shallow} from 'enzyme';
+import React from 'react';
+import {IntlProvider, intlShape} from 'react-intl';
+
+const intlProvider = new IntlProvider({locale: 'en'}, {});
+const {intl} = intlProvider.getChildContext();
+
+export function shallowWithIntl(node, {context} = {}) {
+ return shallow(React.cloneElement(node, {intl}), {
+ context: Object.assign({}, context, {intl})
+ });
+}
+
+export function mountWithIntl(node, {context, childContextTypes} = {}) {
+ return mount(React.cloneElement(node, {intl}), {
+ context: Object.assign({}, context, {intl}),
+ childContextTypes: Object.assign({}, {intl: intlShape}, childContextTypes)
+ });
+}
diff --git a/webapp/tests/spinner_button.test.jsx b/webapp/tests/spinner_button.test.jsx
deleted file mode 100644
index 296f4eaff..000000000
--- a/webapp/tests/spinner_button.test.jsx
+++ /dev/null
@@ -1,19 +0,0 @@
-
-var jsdom = require('mocha-jsdom');
-var assert = require('assert');
-import TestUtils from 'react-addons-test-utils';
-import SpinnerButton from '../components/spinner_button.jsx';
-import React from 'react';
-
-describe('SpinnerButton', function() {
- this.timeout(10000);
- jsdom();
-
- it('check props', function() {
- const spinner = TestUtils.renderIntoDocument(
- <SpinnerButton spinning={false}/>
- );
-
- assert.equal(spinner.props.spinning, false, 'should start in the default false state');
- });
-});
diff --git a/webapp/tests/suggestion_box.test.jsx.disable b/webapp/tests/suggestion_box.test.jsx.disable
deleted file mode 100644
index 6301482c2..000000000
--- a/webapp/tests/suggestion_box.test.jsx.disable
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-import assert from 'assert';
-
-import SuggestionBox from 'components/suggestion/suggestion_box.jsx';
-
-describe('SuggestionBox', function() {
- it('findOverlap', function(done) {
- assert.equal(SuggestionBox.findOverlap('', 'blue'), '');
- assert.equal(SuggestionBox.findOverlap('red', ''), '');
- assert.equal(SuggestionBox.findOverlap('red', 'blue'), '');
- assert.equal(SuggestionBox.findOverlap('red', 'dog'), 'd');
- assert.equal(SuggestionBox.findOverlap('red', 'education'), 'ed');
- assert.equal(SuggestionBox.findOverlap('red', 'reduce'), 'red');
- assert.equal(SuggestionBox.findOverlap('black', 'ack'), 'ack');
-
- done();
- });
-}); \ No newline at end of file
diff --git a/webapp/tests/utils/emoticons.test.jsx b/webapp/tests/utils/emoticons.test.jsx
new file mode 100644
index 000000000..65848d2cc
--- /dev/null
+++ b/webapp/tests/utils/emoticons.test.jsx
@@ -0,0 +1,36 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import EmojiStore from 'stores/emoji_store.jsx';
+import * as Emoticons from 'utils/emoticons.jsx';
+
+describe('Emoticons', () => {
+ describe('handleEmoticons', () => {
+ const emojis = EmojiStore.getEmojis();
+
+ test('should replace emoticons with tokens', () => {
+ expect(Emoticons.handleEmoticons(':goat: :dash:', new Map(), emojis)).
+ toEqual('$MM_EMOTICON0 $MM_EMOTICON1');
+ });
+
+ test('should replace emoticons not separated by whitespace', () => {
+ expect(Emoticons.handleEmoticons(':goat::dash:', new Map(), emojis)).
+ toEqual('$MM_EMOTICON0$MM_EMOTICON1');
+ });
+
+ test('should replace emoticons separated by punctuation', () => {
+ expect(Emoticons.handleEmoticons('/:goat:..:dash:)', new Map(), emojis)).
+ toEqual('/$MM_EMOTICON0..$MM_EMOTICON1)');
+ });
+
+ test('should replace emoticons separated by text', () => {
+ expect(Emoticons.handleEmoticons('asdf:goat:asdf:dash:asdf', new Map(), emojis)).
+ toEqual('asdf$MM_EMOTICON0asdf$MM_EMOTICON1asdf');
+ });
+
+ test('shouldn\'t replace invalid emoticons', () => {
+ expect(Emoticons.handleEmoticons(':asdf: :goat : : dash:', new Map(), emojis)).
+ toEqual(':asdf: :goat : : dash:');
+ });
+ });
+});
diff --git a/webapp/tests/formatting_at_mentions.test.jsx b/webapp/tests/utils/formatting_at_mentions.test.jsx
index 80b097c0f..1216134f2 100644
--- a/webapp/tests/formatting_at_mentions.test.jsx
+++ b/webapp/tests/utils/formatting_at_mentions.test.jsx
@@ -6,8 +6,6 @@ import assert from 'assert';
import * as TextFormatting from 'utils/text_formatting.jsx';
describe('TextFormatting.AtMentions', function() {
- this.timeout(10000);
-
it('At mentions', function() {
assert.equal(
TextFormatting.autolinkAtMentions('@user', new Map(), {user: {}}),
diff --git a/webapp/tests/formatting_hashtags.test.jsx b/webapp/tests/utils/formatting_hashtags.test.jsx
index cfda9aaa2..e1b382601 100644
--- a/webapp/tests/formatting_hashtags.test.jsx
+++ b/webapp/tests/utils/formatting_hashtags.test.jsx
@@ -6,8 +6,6 @@ import assert from 'assert';
import * as TextFormatting from 'utils/text_formatting.jsx';
describe('TextFormatting.Hashtags', function() {
- this.timeout(10000);
-
it('Not hashtags', function(done) {
assert.equal(
TextFormatting.formatText('# hashtag').trim(),
diff --git a/webapp/tests/formatting_imgs.test.jsx b/webapp/tests/utils/formatting_imgs.test.jsx
index 604472671..023359533 100644
--- a/webapp/tests/formatting_imgs.test.jsx
+++ b/webapp/tests/utils/formatting_imgs.test.jsx
@@ -6,8 +6,6 @@ import assert from 'assert';
import * as Markdown from 'utils/markdown.jsx';
describe('Markdown.Imgs', function() {
- this.timeout(10000);
-
it('Inline mage', function(done) {
assert.equal(
Markdown.format('![Mattermost](/images/icon.png)').trim(),
diff --git a/webapp/tests/formatting_links.test.jsx b/webapp/tests/utils/formatting_links.test.jsx
index 30461e6be..1a95cc3de 100644
--- a/webapp/tests/formatting_links.test.jsx
+++ b/webapp/tests/utils/formatting_links.test.jsx
@@ -7,8 +7,6 @@ import * as Markdown from 'utils/markdown.jsx';
import * as TextFormatting from 'utils/text_formatting.jsx';
describe('Markdown.Links', function() {
- this.timeout(10000);
-
it('Not links', function(done) {
assert.equal(
Markdown.format('example.com').trim(),
diff --git a/webapp/tests/utils_get_nearest_point.test.jsx b/webapp/tests/utils/utils_get_nearest_point.test.jsx
index 02ca29cc3..101f768bb 100644
--- a/webapp/tests/utils_get_nearest_point.test.jsx
+++ b/webapp/tests/utils/utils_get_nearest_point.test.jsx
@@ -1,9 +1,7 @@
-import assert from 'assert';
import * as CommonUtils from 'utils/commons.jsx';
describe('CommonUtils.getNearestPoint', function() {
- this.timeout(10000);
- it('should return nearest point', function() {
+ test('should return nearest point', function() {
for (const data of [
{
points: [{x: 30, y: 40}, {x: 50, y: 50}, {x: 100, y: 2}, {x: 500, y: 200}, {x: 110, y: 20}, {x: 10, y: 20}],
@@ -26,8 +24,8 @@ describe('CommonUtils.getNearestPoint', function() {
]) {
const nearestPoint = CommonUtils.getNearestPoint(data.pivotPoint, data.points);
- assert.equal(nearestPoint.x, data.nearestPoint.x);
- assert.equal(nearestPoint.y, data.nearestPoint.y);
+ expect(nearestPoint.x).toEqual(data.nearestPoint.x);
+ expect(nearestPoint.y).toEqual(data.nearestPoint.y);
}
});
});