From 985e02119bf15ea6534be8907dc6c58dcfc0f9d0 Mon Sep 17 00:00:00 2001 From: sakuxz Date: Tue, 26 Jul 2016 20:14:10 +0000 Subject: [PATCH 1/3] finished HW --- src/models/friend.js | 16 +++++++ src/models/post.js | 1 + test/unit/database/practice.test.js | 14 ++++-- test/unit/facebook/helper.test.js | 71 +++++++++++++++++++++++++++-- 4 files changed, 92 insertions(+), 10 deletions(-) create mode 100644 src/models/friend.js diff --git a/src/models/friend.js b/src/models/friend.js new file mode 100644 index 0000000..774611d --- /dev/null +++ b/src/models/friend.js @@ -0,0 +1,16 @@ +'use strict'; + +module.exports = (sequelize, DataTypes) => { + var friend = sequelize.define('Friend', { + name: DataTypes.STRING, + email: DataTypes.STRING, + facebookId: DataTypes.INTEGER + }, { + classMethods: { + associate: (models) => { + } + } + }); + + return friend; +}; diff --git a/src/models/post.js b/src/models/post.js index 9f437cf..f47bb26 100644 --- a/src/models/post.js +++ b/src/models/post.js @@ -4,6 +4,7 @@ module.exports = (sequelize, DataTypes) => { var Post = sequelize.define('Post', { title: DataTypes.STRING, desc: DataTypes.STRING, + price: DataTypes.INTEGER }, { classMethods: { associate: (models) => { diff --git a/test/unit/database/practice.test.js b/test/unit/database/practice.test.js index 8918755..1cdaa0b 100644 --- a/test/unit/database/practice.test.js +++ b/test/unit/database/practice.test.js @@ -42,7 +42,7 @@ describe('practice', () => { price: 100, }; - let result; + let result = await models.Post.create(input); result.title.should.be.eq('AAA'); result.desc.should.be.eq('BBB'); @@ -74,7 +74,7 @@ describe('practice', () => { it('使用 sequelize 尋找 targetPost ', async (done) => { try { - let findTarget; + let findTarget = await models.Post.findById(targetPost.id); findTarget.id.should.be.eq(targetPost.id); done(); @@ -91,8 +91,11 @@ describe('practice', () => { price: 999, } - let findTarget; - let result; + let findTarget = await models.Post.findById(targetPost.id); + findTarget.title = input.title; + findTarget.desc = input.desc; + findTarget.price = input.price; + let result = await findTarget.save(); result.title.should.be.eq(input.title); result.desc.should.be.eq(input.desc); @@ -106,7 +109,8 @@ describe('practice', () => { it('使用 sequelize 刪除 targetPost', async (done) => { try { - let findTarget; + let findTarget = await models.Post.findById(targetPost.id); + await findTarget.destroy(); let check = await models.Post.findAll(); (check.length === 0).should.be.true; diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index 6856c56..ee9141e 100644 --- a/test/unit/facebook/helper.test.js +++ b/test/unit/facebook/helper.test.js @@ -1,23 +1,84 @@ import FacebookHelper from '../../../src/facebook/helper.js' +import task1_initModel from '../../../src/database/task1'; -describe('facebook-helper', () => { +describe.only('facebook-helper', () => { let facebookHelper = null; + let models = null; - before((done) => { - let userId = ""; - let token = ""; + before(async (done) => { + let userId = "718927014853837"; + let token = "EAACEdEose0cBANQIY2OfwDlxZAkTIQZCiiUcCjzbEfcrrAKmRws5qff9ebYEE1dE8pvbEOZAOh2fZCN0tTRbrnNF6mEGFjQOAuy8RuP3uIhkEDj8TMYZAKZBVHbWp1fl2oAco9i8CZCF10FId1YC3yoOOkrZBZBf9bWqSohkjdnLFKBHn9oiIsjCh"; facebookHelper = new FacebookHelper({userId, token}); + models = await task1_initModel(); console.log(facebookHelper); done(); }); - it("get friends list", async (done) => { + it("get friends list and save in database", async (done) => { try { let friends = await facebookHelper.getFriends(); console.log("friends", friends); (friends != null).should.be.true; friends.should.be.Array; friends[0].should.have.keys("name", "id"); + + friends.forEach(function(e, i){ + e.facebookId = e.id; + e.id = undefined; + }); + await models.Friend.bulkCreate(friends); + done(); + } catch (e) { + done(e); + } + }); + + it("get friends list in database", async (done) => { + try { + let friends = await models.Friend.findAll(); + console.log(friends[0].toJSON()); + friends.should.be.Array; + friends[0].toJSON().should.has.keys( + 'id', + 'name', + 'email', + 'facebookId', + 'createdAt', + 'updatedAt' + ); + done(); + } catch (e) { + done(e); + } + }); + + it("update one of friend's email in database", async (done) => { + try { + let friend = await models.Friend.findOne(); + friend.email = 'hellojs@trunk.studio'; + let result = await friend.save(); + result.email.should.be.eq('hellojs@trunk.studio'); + done(); + } catch (e) { + done(e); + } + }); + + it("delete the friend who has trunk.studio email in database", async (done) => { + try { + let friend = await models.Friend.findOne({ + where: { + email: 'hellojs@trunk.studio' + } + }); + await friend.destroy(); + + let result = await models.Friend.findOne({ + where: { + email: 'hellojs@trunk.studio' + } + }); + (result === null).should.be.true; done(); } catch (e) { done(e); From 267b4758c04efd5d57b949fb72052757a330a1d3 Mon Sep 17 00:00:00 2001 From: sakuxz Date: Tue, 26 Jul 2016 20:18:40 +0000 Subject: [PATCH 2/3] remove .only --- test/unit/facebook/helper.test.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index ee9141e..d74053a 100644 --- a/test/unit/facebook/helper.test.js +++ b/test/unit/facebook/helper.test.js @@ -1,7 +1,7 @@ import FacebookHelper from '../../../src/facebook/helper.js' import task1_initModel from '../../../src/database/task1'; -describe.only('facebook-helper', () => { +describe('facebook-helper', () => { let facebookHelper = null; let models = null; @@ -36,7 +36,6 @@ describe.only('facebook-helper', () => { it("get friends list in database", async (done) => { try { let friends = await models.Friend.findAll(); - console.log(friends[0].toJSON()); friends.should.be.Array; friends[0].toJSON().should.has.keys( 'id', From 831fa750a11c47966586b7b50dcba87c684d9559 Mon Sep 17 00:00:00 2001 From: sakuxz Date: Tue, 26 Jul 2016 20:28:04 +0000 Subject: [PATCH 3/3] using allow function --- test/unit/facebook/helper.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index d74053a..68aa489 100644 --- a/test/unit/facebook/helper.test.js +++ b/test/unit/facebook/helper.test.js @@ -22,7 +22,7 @@ describe('facebook-helper', () => { friends.should.be.Array; friends[0].should.have.keys("name", "id"); - friends.forEach(function(e, i){ + friends.forEach((e, i) => { e.facebookId = e.id; e.id = undefined; });