From 1408e5819daab2b16d01647938acc75ac8e4e365 Mon Sep 17 00:00:00 2001 From: Jeffery_Lee Date: Thu, 28 Jul 2016 10:20:28 +0800 Subject: [PATCH] week2 homework --- database.db | Bin 4096 -> 5120 bytes package.json | 3 +- src/models/friend.js | 16 +++++ src/models/post.js | 1 + test/unit/database/facebook.test.js | 91 ++++++++++++++++++++++++++++ test/unit/database/practice.test.js | 4 +- test/unit/facebook/helper.test.js | 4 +- 7 files changed, 114 insertions(+), 5 deletions(-) create mode 100644 src/models/friend.js create mode 100644 test/unit/database/facebook.test.js diff --git a/database.db b/database.db index 3f8ea29c89b51cba05d8a6532ceaa61bd2b83607..5e9b6c948059a89861d378fa2832ef9f0f49f9dc 100644 GIT binary patch literal 5120 zcmeH~&ubGw6vtIfbh(uUoQX-z=L+OBpnNz<4L5lnZJOxv|dw%y%O z#8WJax8lJc7d@%HSg}{JP%-i|A`M!Ar zv)9HVih&2jK+d zI(3ftg&Rk$loh9&rfFh# zj3>k>pGd*0LJIQZ$x$(eCq;!=vJXlnOe)F+B*E)^VrYa<^m2iK2OCg9R`PpBXJuWV zS2YZ;dtIKwh>AlzJF6ktKsnx!;4ofZQj7{PHkyR7@kqq?y|_me#v>EUj@> zH*~9V*tJ??htX;%Mt-l*9MZFUwZM^x*V7X{LkA>9R7loTA)xPY+7gG1A(*a{Tqz>VEtW2!yat&lr0nxK9H{A-tX1lkce z#u4Zus2*44f&!@0gLtXqoq7IkxB6qOzb&mDfp!G!5vV!;=C?gbo+4I>n_%1i)^Y5~ z9UXvXX+jhYq#Nh0Dtud>R#jhCE%=OiYlPmtTn$2YAQWIiEawZbO#Q93p*8KsF1$M~ z{3g&Jo-#lEO&3md}|$&d%pfx5RhW@>!G5+WBl(D}34U&s#9S9JB>hYnrN+ f(EJuu35^6+t!c8B-~1L-34h@ewfyF{pjrMOL~1Mn literal 4096 zcmeH}L2uJA6vyqPwB2DBG$}%e;bW_=B}rGd_0%vTh-kBtrAR$c;-zMb)Gl4)X+ns@ z;N$QaxF9|QXRiAKJ8;4=V@+B*3N2C(u_7n-i+?Zg|Kca_Kd*a~px6Gek0~mH6o3%a z5CTAu0AR!G2EW9|0A8D>J}^e{;$l@?10wtigwNswc1zlSSK!=BWh6<09~6oYdZZPQ zVZgi8uBB_Xj%@8wT}KX|b5PFlx(+f-TYsWksA(Au&1$1(dK+mid(SZ0qK0nT8^}3j zq+{GC4tk+kyH7PMr&cO?W*~j+^(JNqI0(-CA%l;-jt?2)${}0r4hg2Dt5F9%W}jyp z4IP<#HZoiFdgyh~oodcEg|t*Cz&4LGIO(z9`BgwpPRX%L#)e`n`Y~fJjBA6f%(L{| zji}f31DZ~ydD6~Jkqi6&Eq5210^SKRw8Q8AMp)|6-lVEs61WrE4The(F!fehSWx^3 z*p;+Ifkc7jRbU@xz@7WhFb1sZAk6!)Ky+1Ed03RUimHlarMkIYt;i)=l~F;Kt1^4I z$@+8uUjp%Rc>_xBg|k^8 zDH5xvlmv8>ceOY8$oEUG-!IWKJ|j((PgyB#ZSPDgt}$yT!(0@8xhRLga_ulYDTglj zaBVJrI?7i=pc?0^>vQpMMfpm|SK@r-_B?!?`sWnvRLVD`U}Wux(GX@&!HDp?07ur2 V5arLFf)U{ld>G}=o`PBVKLE?bgt-6! diff --git a/package.json b/package.json index b1eba65..f8b1b51 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "prepublish": "npm run compile", "test": "./node_modules/.bin/mocha", "watchdb": "sqlite3 database.db 'select * from users'", - "watchPost": "sqlite3 database.db 'select * from posts'" + "watchPost": "sqlite3 database.db 'select * from posts'", + "watchFriend": "sqlite3 database.db 'select * from Friends'" }, "devDependencies": { "babel-cli": "*", diff --git a/src/models/friend.js b/src/models/friend.js new file mode 100644 index 0000000..e4bce24 --- /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, + facebookId: DataTypes.INTEGER, + email: DataTypes.STRING, + }, { + classMethods: { + associate: (models) => { + } + } + }); + + return Friend; +}; diff --git a/src/models/post.js b/src/models/post.js index 9f437cf..2db7c7f 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/facebook.test.js b/test/unit/database/facebook.test.js new file mode 100644 index 0000000..326a7f6 --- /dev/null +++ b/test/unit/database/facebook.test.js @@ -0,0 +1,91 @@ +import task1_initModel from '../../../src/database/task1'; +import FacebookHelper from '../../../src/facebook/helper.js' + +describe.only('facebook list in database', () => { + let models = null; + let facebookHelper = null; + let friends = null; + + before(async (done) => { + try { + models = await task1_initModel(); + let userId = "830986826924096"; + let token = "EAACEdEose0cBAIjyn7LaZCZBMCm8JgLWCYswSh1WhPN7bdgj45xwCg9lCLgCoMiDnhBS9CQWd4hgBMWRDvZBk6EKvunZAZBpgePhC3an5Fza8zFMrWadCPNs6bt36VET4mYwJrNZBHF6dNlhw7QvZCZCZA9WlEnAuaRmwFFZBfwWvqGAZDZD"; + facebookHelper = new FacebookHelper({userId, token}); + done(); + } catch (e) { + done(e); + } + }); + + it('建立 friends list 到資料庫中', async (done) => { + try { + //arrange + friends = await facebookHelper.getFriends(); + console.log("friends", friends); + //act + await models.Friend.bulkCreate(friends); + //assert + const check = await models.Friend.findAll(); + check.length.should.be.eq(friends.length); + done(); + } catch (e) { + done(e); + } + }); + + it('查找第一位朋友在資料庫中', async (done) => { + try { + //arrange + let f_id = friends[0].id; + let f_name = friends[0].name; + //act + let check = await models.Friend.findById(f_id); + //assert + check.name.should.equal(f_name); + done(); + } catch (e){ + done(e); + } + }); + + it('更改第一位朋友的信箱', async (done) => { + try { + //arrange + let f_id = friends[0].id; + let user = await models.Friend.findById(f_id); + //act + user.email = 'hellojs@trunk.studio'; + await user.save(); + //assert + let check = await models.Friend.findById(f_id); + check.email.should.equal(user.email); + done() + } catch (e){ + done(e); + } + }); + + it('刪除第一位朋友在資料庫中', async (done) => { + try { + //arrange + let f_id = friends[0].id; + let user = await models.Friend.findById(f_id); + //act + await user.destroy(); + //assert + let check = await models.Friend.findById(f_id); + (check === null).should.be.true; + done(); + } catch (e){ + done(e); + } + }); + + + + + + + +}); \ No newline at end of file diff --git a/test/unit/database/practice.test.js b/test/unit/database/practice.test.js index 8918755..6035cb7 100644 --- a/test/unit/database/practice.test.js +++ b/test/unit/database/practice.test.js @@ -11,7 +11,7 @@ describe('practice', () => { } }); - it('在資料庫中 Post table 中新增一個 price 欄位 data types 為 INTEGER', async (done) => { + it ('在資料庫中 Post table 中新增一個 price 欄位 data types 為 INTEGER', async (done) => { try { const data = { title: 'post a', @@ -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'); diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index 6856c56..1f3f7d0 100644 --- a/test/unit/facebook/helper.test.js +++ b/test/unit/facebook/helper.test.js @@ -4,8 +4,8 @@ describe('facebook-helper', () => { let facebookHelper = null; before((done) => { - let userId = ""; - let token = ""; + let userId = "830986826924096"; + let token = "EAACEdEose0cBAIjyn7LaZCZBMCm8JgLWCYswSh1WhPN7bdgj45xwCg9lCLgCoMiDnhBS9CQWd4hgBMWRDvZBk6EKvunZAZBpgePhC3an5Fza8zFMrWadCPNs6bt36VET4mYwJrNZBHF6dNlhw7QvZCZCZA9WlEnAuaRmwFFZBfwWvqGAZDZD"; facebookHelper = new FacebookHelper({userId, token}); console.log(facebookHelper); done();