summaryrefslogtreecommitdiff
path: root/doc/development
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2017-05-26 18:25:32 +0800
committerLin Jen-Shin <godfat@godfat.org>2017-05-26 18:25:32 +0800
commit70eb0c6a88ccb4a1d8fe6cc42fa4aa72b7584ffe (patch)
tree9a5b4fefcec414bc8b017e672dfc2f535383a4a5 /doc/development
parentec525efddba67d840cc409aa4b9a8857dac7453f (diff)
parent7a509c26dd9972f74d030504c292f36b480511f0 (diff)
downloadgitlab-ce-70eb0c6a88ccb4a1d8fe6cc42fa4aa72b7584ffe.tar.gz
Merge remote-tracking branch 'upstream/master' into rename-builds-controller
* upstream/master: (307 commits) Address feedback Add small update for the i18n guide. update webpack to v2.6.1 patch release to fix "Can't find variable: Promise" error update webpack-bundle-analyzer past v2.4.1 to support NamedChunksPlugin name all webpack chunks to improve long term cacheability add NameAllModulesPlugin to cover shortcomings of NamedModulesPlugin upgrade to latest webpack version Only use DROP INDEX CONCURRENTLY on postgreql 9.2+ Provide default for calculating label text color (!11681) Add failing test for #32728 Bugfix: Always use the default language when generating emails. Remove unecessary commit pattern check Add regexp_for_value helper method Remove shared example and improve sub_group_issuables_spec.rb Remove 'should' from scenario in has_subgroup_title_spec.rb Cartfile git and binary methods cannot take a GitHub repo Fix terminals support for Kubernetes service Add review comments to compare_spec.rb Fix transient error clicking dropdown items in compare_spec.rb Use non-global jQuery reference within raven bundle ...
Diffstat (limited to 'doc/development')
-rw-r--r--doc/development/fe_guide/testing.md63
-rw-r--r--doc/development/i18n_guide.md12
-rw-r--r--doc/development/what_requires_downtime.md2
3 files changed, 76 insertions, 1 deletions
diff --git a/doc/development/fe_guide/testing.md b/doc/development/fe_guide/testing.md
index 5852cac2aa5..0ef9fc61a61 100644
--- a/doc/development/fe_guide/testing.md
+++ b/doc/development/fe_guide/testing.md
@@ -68,6 +68,69 @@ describe('.methodName', () => {
});
});
```
+#### Testing Promises
+
+When testing Promises you should always make sure that the test is asynchronous and rejections are handled.
+Your Promise chain should therefore end with a call of the `done` callback and `done.fail` in case an error occurred.
+
+```javascript
+// Good
+it('tests a promise', (done) => {
+ promise
+ .then((data) => {
+ expect(data).toBe(asExpected);
+ })
+ .then(done)
+ .catch(done.fail);
+});
+
+// Good
+it('tests a promise rejection', (done) => {
+ promise
+ .then(done.fail)
+ .catch((error) => {
+ expect(error).toBe(expectedError);
+ })
+ .then(done)
+ .catch(done.fail);
+});
+
+// Bad (missing done callback)
+it('tests a promise', () => {
+ promise
+ .then((data) => {
+ expect(data).toBe(asExpected);
+ })
+});
+
+// Bad (missing catch)
+it('tests a promise', (done) => {
+ promise
+ .then((data) => {
+ expect(data).toBe(asExpected);
+ })
+ .then(done)
+});
+
+// Bad (use done.fail in asynchronous tests)
+it('tests a promise', (done) => {
+ promise
+ .then((data) => {
+ expect(data).toBe(asExpected);
+ })
+ .then(done)
+ .catch(fail)
+});
+
+// Bad (missing catch)
+it('tests a promise rejection', (done) => {
+ promise
+ .catch((error) => {
+ expect(error).toBe(expectedError);
+ })
+ .then(done)
+});
+```
#### Stubbing
diff --git a/doc/development/i18n_guide.md b/doc/development/i18n_guide.md
index 44eca68aaca..735345bd126 100644
--- a/doc/development/i18n_guide.md
+++ b/doc/development/i18n_guide.md
@@ -7,6 +7,14 @@ For working with internationalization (i18n) we use
tool for this task and we have a lot of applications that will help us to work
with it.
+## Setting up GitLab Development Kit (GDK)
+
+In order to be able to work on the [GitLab Community Edition](https://gitlab.com/gitlab-org/gitlab-ce) project we must download and
+configure it through [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit), we can do it by following this [guide](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/set-up-gdk.md).
+
+Once we have the GitLab project ready we can start working on the
+translation of the project.
+
## Tools
We use a couple of gems:
@@ -211,9 +219,11 @@ Let's suppose you want to add translations for a new language, let's say French.
you just need to separate the region with an underscore (`_`). For example:
```sh
- bundle exec rake gettext:add_language[en_gb]
+ bundle exec rake gettext:add_language[en_GB]
```
+ Please note that you need to specify the region part in capitals.
+
1. Now that the language is added, a new directory has been created under the
path: `locale/fr/`. You can now start using your PO editor to edit the PO file
located in: `locale/fr/gitlab.edit.po`.
diff --git a/doc/development/what_requires_downtime.md b/doc/development/what_requires_downtime.md
index 8da6ad684f5..c4830322fa8 100644
--- a/doc/development/what_requires_downtime.md
+++ b/doc/development/what_requires_downtime.md
@@ -139,6 +139,8 @@ Adding or removing a NOT NULL clause (or another constraint) can typically be
done without requiring downtime. However, this does require that any application
changes are deployed _first_. Thus, changing the constraints of a column should
happen in a post-deployment migration.
+NOTE: Avoid using `change_column` as it produces inefficient query because it re-defines
+the whole column type. For example, to add a NOT NULL constraint, prefer `change_column_null `
## Changing Column Types