From 9516ed4494ebad6c76fc7ff1237c915378864132 Mon Sep 17 00:00:00 2001 From: wchen Date: Wed, 4 Nov 2015 15:40:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=EF=BC=9AupdatedKeys=20=E5=9C=A8=20afterUpdate=20=E4=B8=AD?= =?UTF-8?q?=E6=9C=89=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/function_test.js | 4 ++-- test/hook_test.js | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/function_test.js b/test/function_test.js index c722516..95b6fd5 100644 --- a/test/function_test.js +++ b/test/function_test.js @@ -50,7 +50,7 @@ AV.Cloud.define('complexObject', function(request, response) { avObjects: results, }); } - }) + }); }); AV.Cloud.define('bareAVObject', function(request, response) { @@ -72,7 +72,7 @@ AV.Cloud.define('AVObjects', function(request, response) { success: function(results) { response.success(results); } - }) + }); }); AV.Cloud.define('testAVObjectParams', function(request, response) { diff --git a/test/hook_test.js b/test/hook_test.js index 47dd43a..eaa592f 100644 --- a/test/hook_test.js +++ b/test/hook_test.js @@ -69,6 +69,7 @@ AV.Cloud.afterSave("TestError", function() { AV.Cloud.afterUpdate("TestClass", function(request) { var bizTime = new Date(); + assert(request.object.updatedKeys.indexOf('foo') != -1); request.object.set('bizTime', bizTime); request.object.save(null, { success: function(obj) { @@ -343,6 +344,7 @@ describe('hook', function() { .set('Content-Type', 'application/json') .send({ object: { + "_updatedKeys": ['foo'], objectId: '556904d8e4b09419960c14bd', foo: 'bar' } From 369dc689ace5a77450b96618c1b777b1b24f7876 Mon Sep 17 00:00:00 2001 From: wchen Date: Mon, 28 Dec 2015 15:14:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?bugfix:=20cookieSession=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E6=9C=89=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 不应该使用 fetch 接口,因为这样总是使用 id 而忽略 sessionToken。 --- lib/leanengine.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/leanengine.js b/lib/leanengine.js index a76e4e1..c110ad4 100644 --- a/lib/leanengine.js +++ b/lib/leanengine.js @@ -510,21 +510,20 @@ AV.Insight.on = function(action, func) { }; Cloud.logInByIdAndSessionToken = function(uid, sessionToken, fetch, cb) { - var user; - user = new AV.User(); - user.id = uid; - user._sessionToken = sessionToken; - AV.User._saveCurrentUser(user); if (fetch) { - return user.fetch({ + AV.User.become(sessionToken, { success: function(user) { return cb(null, user); }, - error: function(err) { + error: function(user, err) { return cb(err); } }); } else { + var user = new AV.User(); + user.id = uid; + user._sessionToken = sessionToken; + AV.User._saveCurrentUser(user); return cb(null, user); } }; From 4124818e45b6b7f2b56150c2d19164adf832f8e6 Mon Sep 17 00:00:00 2001 From: wchen Date: Mon, 28 Dec 2015 16:56:55 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/function_test.js | 59 +++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/test/function_test.js b/test/function_test.js index 95b6fd5..1fad3e2 100644 --- a/test/function_test.js +++ b/test/function_test.js @@ -61,7 +61,7 @@ AV.Cloud.define('bareAVObject', function(request, response) { success: function(results) { response.success(results[0]); } - }) + }); }); AV.Cloud.define('AVObjects', function(request, response) { @@ -174,7 +174,7 @@ AV.Cloud.define('testRunWithAVObject', function(request, response) { response.success(datas); } }); -}) +}); AV.Cloud.define('readDir', function(request, response) { fs.readdir('.', function(err, dir) { @@ -314,7 +314,7 @@ describe('functions', function() { }); done(); - }) + }); }); // 返回单个 AVObject @@ -374,7 +374,7 @@ describe('functions', function() { name: 'avObjects' }] }) - .expect(200, function(err, res) { + .expect(200, function(err) { done(err); }); }); @@ -395,7 +395,7 @@ describe('functions', function() { name: 'hello.txt' }, }) - .expect(200, function(err, res) { + .expect(200, function(err) { done(err); }); }); @@ -418,7 +418,7 @@ describe('functions', function() { .set('X-AVOSCloud-Application-Id', appId) .set('X-AVOSCloud-Application-Key', appKey) .send([object, object]) - .expect(200, function(err, res) { + .expect(200, function(err) { done(err); }); }); @@ -442,7 +442,7 @@ describe('functions', function() { res.body.result.avObjects[0].__type.should.equal('Object'); res.body.result.avObjects[0].className.should.equal('ComplexObject'); done(); - }) + }); }); it('testRun_text_plain', function(done) { @@ -587,36 +587,29 @@ describe('functions', function() { return done(); } }; - for (var i = 0; i <= 4; i++) { - request(AV.Cloud) - .post('/1.1/functions/userMatching') - .set('X-AVOSCloud-Application-Id', appId) - .set('X-AVOSCloud-Application-Key', appKey) - .set('X-AVOSCloud-session-token', sessionToken_admin) - .expect(200, function(err, res) { - res.body.result.reqUser.username.should.equal('admin'); - res.body.result.currentUser.username.should.equal('admin'); - return cb(err); - }); - request(AV.Cloud) - .post('/1.1/functions/userMatching') - .set('X-AVOSCloud-Application-Id', appId) - .set('X-AVOSCloud-Application-Key', appKey) - .set('X-AVOSCloud-session-token', '3267fscy0q4g3i4yc9uq9rqqv') - .expect(200, function(err, res) { - res.body.result.reqUser.username.should.equal('zhangsan'); - res.body.result.currentUser.username.should.equal('zhangsan'); - return cb(err); - }); - request(AV.Cloud) + var doRequest = function(sessionToken, username, cb) { + var r = request(AV.Cloud) .post('/1.1/functions/userMatching') .set('X-AVOSCloud-Application-Id', appId) - .set('X-AVOSCloud-Application-Key', appKey) - .expect(200, function(err, res) { - should.not.exist(res.body.reqUser); - should.not.exist(res.body.currentUser); + .set('X-AVOSCloud-Application-Key', appKey); + if (sessionToken) { + r.set('X-AVOSCloud-session-token', sessionToken); + } + r.end(function(err, res) { + if (username) { + res.body.result.reqUser.username.should.equal(username); + res.body.result.currentUser.username.should.equal(username); + } else { + should.not.exist(res.body.reqUser); + should.not.exist(res.body.currentUser); + } return cb(err); }); + }; + for (var i = 0; i <= 4; i++) { + doRequest(sessionToken_admin, 'admin', cb); + doRequest('0hgr13u12tmgyv4x594682sv5', 'zhangsan', cb); + doRequest(null, null, cb); } });