From a91d4d082b4fa34c5cde0807b05546f293a11918 Mon Sep 17 00:00:00 2001 From: curt6815463 Date: Wed, 27 Jul 2016 23:14:19 +0800 Subject: [PATCH 1/2] v1 --- database.db | Bin 4096 -> 5120 bytes src/models/friend.js | 16 +++++ src/models/post.js | 1 + test/unit/CurtHw/Hw.test.js | 104 ++++++++++++++++++++++++++++ test/unit/database/practice.test.js | 19 +++-- test/unit/facebook/helper.test.js | 4 +- 6 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 src/models/friend.js create mode 100644 test/unit/CurtHw/Hw.test.js diff --git a/database.db b/database.db index 3f8ea29c89b51cba05d8a6532ceaa61bd2b83607..43bec3dc56a50916edb4660e46582fb73f82fa5d 100644 GIT binary patch literal 5120 zcmWFz^vNtqRY=P(%1ta$FlJz3U}R))P*7lCV3lS75zu0aX`L7u*jL6HjHu8|6kp&|aBen3sWu6`jp z3JIk^lkyUCQxg=z9D|%a9D_8BOieX`5~;a~nK>Au1&PJQ<@rTG!_kx{rUQ+DS_ssg zT$GwvlA7XJlAz!MbY6(3ud9Nee~5x#sE-fG)`AqA(wdEaEMUJjRfGK+kY8L<3?^7m z{R$Q%#jhoqB{`TLO-U_I#_&!-QD!pLJQTphCa$f`7zy@HabXTHImZ{L7M7;wC8wfs znNhrmCaD36C>@|qO-S0KHObNdn+&$c}~dv&2H zJA*ufsi)`Drq&k?4Nv!N&q&S5$W zr}4nA#zSpOY@vp}n7a1qy8ah?=2Bv)XXE)_pUyn_5XjCT33BPPxqZ(YDKgP#+P#gR zmtV++xpK|ir|YIaU)e{AD}m`U6drLvSHdHX5<_``rZO_WVF030Fd71*AuxTJ^)&|D#?T4S~@RKn($;{158eGcn0B?q!T+_=T!!IPwxX zI2gnY#Th+4OHzwVOu&RgWnxBtzFu;Eu3kwwSVSDTab;{}Y;I+0sAq0rj->^RDI3QQ zv_czZg)zuLV~2E5*B@jBm@7h&`E1DM8-WZoLN(t=jw16}kJ}^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/src/models/friend.js b/src/models/friend.js new file mode 100644 index 0000000..6563883 --- /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.STRING, + 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/CurtHw/Hw.test.js b/test/unit/CurtHw/Hw.test.js new file mode 100644 index 0000000..0194543 --- /dev/null +++ b/test/unit/CurtHw/Hw.test.js @@ -0,0 +1,104 @@ +import task1_initModel from '../../../src/database/task1'; +import FacebookHelper from '../../../src/facebook/helper.js' + +describe.only('HomwWork', () => { + let models = null; + let facebookHelper = null; + let friends = null; + + before(async (done) => { + models = await task1_initModel(); + let userId = "656537631096363"; + let token = "EAACEdEose0cBALSWnixOLiY8WFvCkHJ2T1TXhO7Mip0VMzeSLjwZCZAEVZAIlKD4vlSA7iH96IZCMcjIyY8xIUQkVR3xRa6sLQL758fZAjLwKrbdnKSO9oeTCiNRGNgjJb188j5OZCI2wbNelCKoFzVDovJ88i5D9z4dohMvh8pAZDZD"; + facebookHelper = new FacebookHelper({userId, token}); + done(); + }); + + + it('把從 facebook 取得的 friends list 存入 sequelize 之 friend model (create)', async (done) => { + try { + + //f_list => my friends List + friends = await facebookHelper.getFriends(); + //write friends in to database. + let result = await models.Friend.bulkCreate(friends); + //friend numbers should equal database record numbers + friends.length.should.equal(result.length); + // friends = await facebookHelper.getFriends(); + // + // let result = + // await models.Friend.create({ + // name: friends[0].name, + // facebookId: friends[0].id, + // email: '', + // }); + // + // result.name.should.be.eq('傅耀德'); + // result.facebookId.should.be.eq('901833236500661'); + // result.email.should.be.eq(''); + done(); + } catch (e) { + done(e); + } + }); + + it('原本用 api 取得 friends list 改為透過查詢資料庫的方式 (find)', async (done) => { + try { + + + let friend = await models.Friend.findOne({ + where: { + name: '傅耀德' + }, + }); + friend.name.should.equal('傅耀德'); + done(); + } catch (e) { + done(e); + } + }); + + it('原本用 api 取得 friends list 改為透過查詢資料庫的方式 (find)', async (done) => { + try { + + + let friend = await models.Friend.findOne({ + where: { + name: '傅耀德' + }, + }); + friend.email = 'hellojs@trunk.studio'; + await friend.save(); + + friend.email.should.equal('hellojs@trunk.studio'); + done(); + } catch (e) { + done(e); + } + }); + + it('原本用 api 取得 friends list 改為透過查詢資料庫的方式 (find)', async (done) => { + try { + + + let friend = await models.Friend.findOne({ + where: { + name: '傅耀德' + }, + }); + await friend.destroy(); + + let test = await models.Friend.findOne({ + where: { + name: '傅耀德' + }, + }); + (test === null ).should.be.true; + + done(); + } catch (e) { + done(e); + } + }); + +}); diff --git a/test/unit/database/practice.test.js b/test/unit/database/practice.test.js index 8918755..73fb37e 100644 --- a/test/unit/database/practice.test.js +++ b/test/unit/database/practice.test.js @@ -37,16 +37,21 @@ describe('practice', () => { it('使用 sequelize 新增一個 post 使測試 pass', async (done) => { try { const input = { - title: 'AAA', - desc: 'BBB', - price: 100, + name: '321', + facebookId: 'aaa', + email: 'aaa', }; - let result; + let result = + await models.Friend.create({ + name: '321', + facebookId: 'aaa', + email: 'aaa', + }); - result.title.should.be.eq('AAA'); - result.desc.should.be.eq('BBB'); - result.price.should.be.eq(100); + result.name.should.be.eq('321'); + result.facebookId.should.be.eq('aaa'); + result.email.should.be.eq('aaa'); done(); } catch (e) { done(e); diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index 6856c56..5fe7edb 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 = "656537631096363"; + let token = "EAACEdEose0cBAAl5zb7tl2OzTfLA2INXGd6NsJ6ZAZCvh3cw45fJB4IrkqGsGkSN99T5gJ4BImecZBsiABknIgt3XR0VzoX72gBJNFYm32rUbZAraVFsc56P5S4eRPNaYY9DP8vqMuZCuFgZBZC7F3MJV24cmtMAJyz5Br8r8e4TwZDZD"; facebookHelper = new FacebookHelper({userId, token}); console.log(facebookHelper); done(); From 3167b9cf853bb85690be76ffff87f7c7d49e6cf8 Mon Sep 17 00:00:00 2001 From: curt6815463 Date: Wed, 27 Jul 2016 23:17:35 +0800 Subject: [PATCH 2/2] v2 --- test/unit/CurtHw/Hw.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/CurtHw/Hw.test.js b/test/unit/CurtHw/Hw.test.js index 0194543..3f3bfb5 100644 --- a/test/unit/CurtHw/Hw.test.js +++ b/test/unit/CurtHw/Hw.test.js @@ -58,7 +58,7 @@ describe.only('HomwWork', () => { } }); - it('原本用 api 取得 friends list 改為透過查詢資料庫的方式 (find)', async (done) => { + it('將其中一個 friend 更新其 email 欄位為 hellojs@trunk.studio (update)', async (done) => { try { @@ -77,7 +77,7 @@ describe.only('HomwWork', () => { } }); - it('原本用 api 取得 friends list 改為透過查詢資料庫的方式 (find)', async (done) => { + it('刪除該位 friend (delete)', async (done) => { try {