commit
a796c66b6c
|
@ -1,11 +1,8 @@
|
|||
sudo: false
|
||||
language: node_js
|
||||
node_js:
|
||||
- '5'
|
||||
- '4'
|
||||
- '3'
|
||||
- '2'
|
||||
- '1'
|
||||
- '0.12'
|
||||
script:
|
||||
- 'npm run test-cov'
|
||||
after_script:
|
||||
|
|
3
index.js
3
index.js
|
@ -177,7 +177,8 @@ module.exports = function (app, options) {
|
|||
locale = defaultLocale;
|
||||
}
|
||||
|
||||
if (cookieLocale !== locale) {
|
||||
// if header not send, set the locale cookie
|
||||
if (cookieLocale !== locale && !this.headerSent) {
|
||||
// locale change, need to set cookie
|
||||
this.cookies.set(cookieField, locale, {
|
||||
// make sure brower javascript can read the cookie
|
||||
|
|
|
@ -7,11 +7,10 @@
|
|||
"index.js"
|
||||
],
|
||||
"scripts": {
|
||||
"test": "eslint . && mocha --harmony --check-leaks -R spec -t 5000 test/*.test.js",
|
||||
"test-cov": "node --harmony node_modules/.bin/istanbul cover node_modules/.bin/_mocha -- --check-leaks -t 5000 test/*.test.js",
|
||||
"test": "eslint . && mocha --check-leaks -R spec -t 5000 test/*.test.js",
|
||||
"test-cov": "istanbul cover _mocha -- --check-leaks -t 5000 test/*.test.js",
|
||||
"lint": "eslint .",
|
||||
"autod": "autod -w --prefix '~'",
|
||||
"cnpm": "npm install --registry=https://registry.npm.taobao.org",
|
||||
"contributors": "contributors -f plain -o AUTHORS"
|
||||
},
|
||||
"dependencies": {
|
||||
|
@ -25,8 +24,8 @@
|
|||
"beautify-benchmark": "0",
|
||||
"benchmark": "1",
|
||||
"contributors": "*",
|
||||
"eslint": "~1.5.0",
|
||||
"istanbul-harmony": "*",
|
||||
"eslint": "1",
|
||||
"istanbul": "*",
|
||||
"koa": "1",
|
||||
"mm": "1",
|
||||
"mocha": "*",
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
/**!
|
||||
* koa-locales - test/index.test.js
|
||||
*
|
||||
/**
|
||||
* Copyright(c) koajs and other contributors.
|
||||
* MIT Licensed
|
||||
*
|
||||
|
@ -51,6 +49,16 @@ describe('koa-locales.test.js', function () {
|
|||
.expect('Set-Cookie', /^locale=en\-us; path=\/; expires=\w+/)
|
||||
.expect(200, done);
|
||||
});
|
||||
|
||||
it('should not set locale cookie after header sent', function(done) {
|
||||
request(app.callback())
|
||||
.get('/headerSent')
|
||||
.expect('foo')
|
||||
.expect(200, function(err) {
|
||||
assert(!err, err && err.message);
|
||||
setTimeout(done, 50);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('custom options', function () {
|
||||
|
@ -397,6 +405,15 @@ function createApp(options) {
|
|||
const fname = options && options.functionName || '__';
|
||||
|
||||
app.use(function* () {
|
||||
if (this.url === '/headerSent') {
|
||||
this.body = 'foo';
|
||||
const that = this;
|
||||
setTimeout(function() {
|
||||
that[fname]('Email');
|
||||
}, 10);
|
||||
return;
|
||||
}
|
||||
|
||||
this.body = {
|
||||
email: this[fname]('Email'),
|
||||
name: this[fname]('model.user.fields.name'),
|
||||
|
|
Loading…
Reference in New Issue