From ea4c7d99bf5964596e331bd207ac3bc0ddf5d43a Mon Sep 17 00:00:00 2001 From: unnhao Date: Wed, 27 Jul 2016 05:00:55 +0000 Subject: [PATCH 1/3] first --- database.db | Bin 4096 -> 4096 bytes src/models/post.js | 5 +- test/unit/database/practice.test.js | 161 ++++++++++++++-------------- test/unit/database/task2.test.js | 2 + test/unit/facebook/helper.test.js | 5 +- 5 files changed, 89 insertions(+), 84 deletions(-) diff --git a/database.db b/database.db index 3f8ea29c89b51cba05d8a6532ceaa61bd2b83607..c13f190a18bd8e31c8e29d623349150642e6adc7 100644 GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlJz3U}R))P*7lC;L2fO0CM4gqXm`EzzCPZ$pD(6`|>3( zvj_t-<244RL(Hl`Y822s1R670*u}-g8Ji7D5|eULLyJ?3iopbnbC9cJh^s<~qmz%T zLIPMUK|v!SGbKU6(=Wu;-8D!dAjs3#F(^{O+ci?bF*L;A(+{Z0*VQjXM>s#xIDiIXgHek#B`t$Pz!;&lZ#RlOHxxD zOA-`ZfX)l?^mSG6^AAz*3-$2<*;Nip_#6Mxvr6!f}xR>v89!fxt^twk%G2?ft7&)ep$b1 z_x9cTds_=?s#j%co^E8Rf=^~1etr05eHy1Oez<7iA8mF9d5~kDc6C0THs{%lrTDes zm-TGyoH&2pk?E}L43Z#2UoPx_*)Wu< z<$p%zcMQz$nD0;=>7xdWhQMeD44M!SU}6?$1Gh;SSk=}%pCJ`5z=$pa%Ky+-J`>Xe zrdlRh#=VTO48I1ACuru7L=FxHaYJ!NPtTIn;t~@u;ZT{Fk)N-ZoS&;#QVtdoM=d^$ zEUZin^^6V8vDQ}TvT^J{E3{!&7=sKnc1Q=cltEU2xgr#q&xUNi5y(IzRP&AGC^DZF z*?dEg`G%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/src/models/post.js b/src/models/post.js index 9f437cf..4529228 100644 --- a/src/models/post.js +++ b/src/models/post.js @@ -2,8 +2,9 @@ module.exports = (sequelize, DataTypes) => { var Post = sequelize.define('Post', { - title: DataTypes.STRING, - desc: DataTypes.STRING, + name: DataTypes.STRING, + facebookid: DataTypes.STRING, + email: DataTypes.STRING }, { classMethods: { associate: (models) => { diff --git a/test/unit/database/practice.test.js b/test/unit/database/practice.test.js index 8918755..47136a4 100644 --- a/test/unit/database/practice.test.js +++ b/test/unit/database/practice.test.js @@ -1,119 +1,120 @@ import task1_initModel from '../../../src/database/task1'; +import FacebookHelper from '../../../src/facebook/helper.js' -describe('practice', () => { - let models = null; - beforeEach(async (done) => { +describe('facebook-helper2', () => { + let models = null; + let facebookHelper = null; + let result = null; + let friendlist = null; + + beforeEach(async (done) => { try { + /* + let userId = "914618278557777"; + let token = "EAACEdEose0cBADYefvKTaZBjO9Llkhgz6UTVjuPIQ9sldZCdpN2mVDjsc5sX6urNkZAaSoxnCeunPb3Hv4GFNvVurGraQVvCRPUImwDf1Cy2pRhz4U641NC8I6XImJt396rDkvsMnt3JzLbQ3yhyAIu5xQSxljbRazFLW2GqAZDZD"; + facebookHelper = new FacebookHelper({userId, token}); + models = await task1_initModel(); + let friends = await facebookHelper.getFriends(); + let friendslength = friends.length; + result = await models.Post.bulkCreate(friends); + + (friends != null).should.be.true; + friends.should.be.Array; + friends[0].should.have.keys("name", "id"); + console.log("it's "+ friends.length);*/ + let userId = "914618278557777"; + let token = "EAACEdEose0cBADYefvKTaZBjO9Llkhgz6UTVjuPIQ9sldZCdpN2mVDjsc5sX6urNkZAaSoxnCeunPb3Hv4GFNvVurGraQVvCRPUImwDf1Cy2pRhz4U641NC8I6XImJt396rDkvsMnt3JzLbQ3yhyAIu5xQSxljbRazFLW2GqAZDZD"; + facebookHelper = new FacebookHelper({userId, token}); models = await task1_initModel(); + done(); } catch (e) { done(e); } }); - it('在資料庫中 Post table 中新增一個 price 欄位 data types 為 INTEGER', async (done) => { + + + it.only("create", async (done) => { try { - const data = { - title: 'post a', - desc: 'post desc', - price: 100, - }; - const result = await models.Post.create(data); - result.toJSON().should.has.keys( - 'id', - 'title', - 'desc', - 'price', - 'createdAt', - 'updatedAt' - ); - result.price.should.be.eq(data.price); + + + + friendlist = await facebookHelper.getFriends(); + result = await models.Post.bulkCreate(friendlist); + + + friendlist[0].should.have.keys("name", "id"); + result.length.should.be.eq(friendlist.length); + done(); } catch (e) { done(e); } }); - - it('使用 sequelize 新增一個 post 使測試 pass', async (done) => { + + it.skip('find', async (done) => { try { - const input = { - title: 'AAA', - desc: 'BBB', - price: 100, - }; - - let result; - - result.title.should.be.eq('AAA'); - result.desc.should.be.eq('BBB'); - result.price.should.be.eq(100); + const result = await models.Post.findAll({ + where: { + id: { + $like: '%1%', + }, + }, + }); + console.log("fuckq"); + + console.log("fuckq"); + done(); } catch (e) { done(e); } }); - - describe('practice find', () => { - let models = null; - let targetPost = null - beforeEach(async (done) => { + + it.skip('update ', async (done) => { try { - models = await task1_initModel(); - const data = { - title: 'post a', - desc: 'post desc', - price: 100, - }; - targetPost = await models.Post.create(data); - done(); - } catch (e) { - done(e); - } - }); + + let result = {}; + result = await models.Post.findOne({ + where: { + id: "100003672452522" + }, + }); + console.log(result.email); + result.email = 'hellojs@trunk.studio'; + console.log(result.email); + await result.save(); - it('使用 sequelize 尋找 targetPost ', async (done) => { - try { - - let findTarget; - - findTarget.id.should.be.eq(targetPost.id); done(); } catch (e) { done(e); } }); - - it('使用 sequelize 更新 targetPost 的資料', async (done) => { + + it.skip('使用 sequelize 刪除 targetPost', async (done) => { try { - const input = { - title: '123', - desc: '456', - price: 999, - } - - let findTarget; - let result; - result.title.should.be.eq(input.title); - result.desc.should.be.eq(input.desc); - result.price.should.be.eq(input.price); + let result = {}; + result = await models.Post.findOne({ + where: { + id: "100003672452522" + }, + }); + await result.destroy(); + + let check = await models.Post.findAll(); + + //(check.length === 0).should.be.true; done(); } catch (e) { done(e); } }); + + +}); - it('使用 sequelize 刪除 targetPost', async (done) => { - try { +/// - let findTarget; - let check = await models.Post.findAll(); - (check.length === 0).should.be.true; - done(); - } catch (e) { - done(e); - } - }); - }); -}); diff --git a/test/unit/database/task2.test.js b/test/unit/database/task2.test.js index 153a1b0..32d865e 100644 --- a/test/unit/database/task2.test.js +++ b/test/unit/database/task2.test.js @@ -3,6 +3,8 @@ import task1_initModel from '../../../src/database/task1'; describe('database level 2', () => { let models = null; let userList1 = []; + let facebookHelper = null; + beforeEach(async (done) => { try { models = await task1_initModel(); diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index 6856c56..41873ba 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 = "914618278557777"; + let token = "EAACEdEose0cBAAQbcnUUWudy4QdzBZCS3nmjIWF0bdeN3oT0gOEOrbffHcTrfJ61XyPTJprfZBlqDGDxpuDkm3E8fdZBlGOg11FZCDb5AWZB1DuRlBa2FLQ2rhuzjMmLn8fmD2F921q6ZBiB9c4rPhTpTjqtztTOSCkRcCGQMZCCAZDZD"; facebookHelper = new FacebookHelper({userId, token}); console.log(facebookHelper); done(); @@ -30,6 +30,7 @@ describe('facebook-helper', () => { message: 'test facebook post api' } let result = await facebookHelper.publishPost(post); + console.log("result", result); done(); } catch (e) { From f0fb11c5ad43c13db054b80c8d01622d7983dc00 Mon Sep 17 00:00:00 2001 From: unnhao Date: Wed, 27 Jul 2016 07:02:02 +0000 Subject: [PATCH 2/3] done 3/4 --- database.db | Bin 4096 -> 4096 bytes src/database/task1.js | 2 +- test/unit/database/practice.test.js | 8 ++++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/database.db b/database.db index c13f190a18bd8e31c8e29d623349150642e6adc7..018230ab399f9151531772e6199ee99158b25852 100644 GIT binary patch delta 281 zcmZorXi%6SCB!{}fq{Vqh@pV9W1@}`6ZeFT2{LRt<_ZR8R;I>Q#^!n^1{Mn11_o9J t21W*kX1WIEx<;t7lUJ~5k*47vn { friends[0].should.have.keys("name", "id"); console.log("it's "+ friends.length);*/ let userId = "914618278557777"; - let token = "EAACEdEose0cBADYefvKTaZBjO9Llkhgz6UTVjuPIQ9sldZCdpN2mVDjsc5sX6urNkZAaSoxnCeunPb3Hv4GFNvVurGraQVvCRPUImwDf1Cy2pRhz4U641NC8I6XImJt396rDkvsMnt3JzLbQ3yhyAIu5xQSxljbRazFLW2GqAZDZD"; + let token = "EAACEdEose0cBAGZB8zbU71ZCnKC97fsfZAGhQFf15xash0ZAHqCbP66ZA7geF3nQL1b2gZC3vAGdN29cZAW5j1UZAmXYvhh4LQs1iZBLrOsFxG1qmrSlNDSsmivo3kZBq5kNW29buTj690A1om5YZA60U943hHBHlHQKUdSgpsfvkqUlAZDZD"; facebookHelper = new FacebookHelper({userId, token}); models = await task1_initModel(); @@ -35,10 +35,10 @@ describe('facebook-helper2', () => { - it.only("create", async (done) => { + it.skip("create", async (done) => { try { - + await models.sequelize.sync({force: true}) friendlist = await facebookHelper.getFriends(); result = await models.Post.bulkCreate(friendlist); @@ -63,7 +63,7 @@ describe('facebook-helper2', () => { }, }); console.log("fuckq"); - + console.log(result) console.log("fuckq"); done(); From ca32a4ed0e1658ccc286071acbffe9545d2f2219 Mon Sep 17 00:00:00 2001 From: unnhao Date: Wed, 27 Jul 2016 15:20:53 +0000 Subject: [PATCH 3/3] done --- database.db | Bin 4096 -> 7168 bytes test/unit/database/facebook.test.js | 101 ++++++++++++++++++++++++++++ test/unit/database/practice.test.js | 59 ++++++---------- 3 files changed, 121 insertions(+), 39 deletions(-) create mode 100644 test/unit/database/facebook.test.js diff --git a/database.db b/database.db index 018230ab399f9151531772e6199ee99158b25852..bfd8ab80a4fd6ed6a244c85c3dfd8d6478cc3611 100644 GIT binary patch literal 7168 zcmeH~Pi)&%9LJyS{AtI^y3rCgC_D)PEmuO+6f40&6Dis zyl?z@@Av!qJwLzpYQCx~@TA&Um30^c0YDHS10eu=D*%8nI)dn+02urY)d6&D7h?Ou zy+(}5&CMZd1W?3xfc%Df237s?pJ!mb8VE-s5#nuDmltcwoTfB1;}kej%wQWgBg;MV2ToKL|g_&$ogwr_@X6H)BgaW#0CRZpOhUF$A)#X*C43B4v zM~-HT<6I&!fdpk$uGaq1dRo@BvuXpu+x{*uBg9sR=aXp>hE;!Gdh`7HC;1KWDBrtwE0P=V=7O|6=hLXPhn5m(&n7yUa~htUI77e z9#EI56I76#N0)PEf7I0TU5N4`1 zMT1A1a(&t9#?DwvMa~@G4ggVY0rW!6ufPA>nLxI-yNf4Ejc=7`_AAQpJF8G@tA=YD*O<|7gbD#u&|;sz~}qClj3# zVyR-tH#)_4LR%_+{||uQ0re@BA@7oJl4HbI#OtWx|DXSSI-a7FoXh-gQ~l3>c?_)> z?DmQj$5T35^br!7@_!oDcQFfi7-D8)v4;y-TZdtX$o z5q9ofI%Ma2UsS#F<%8W@kZ^e}jJF1Bs?uZj5PVo*5*$-xs#3(x_hEra*n$73o$tc} zk9<7;_W&Nx{};#~jro6-IDzK>hp5rL$fMmm*YUN;nyNHnkKBiICc!bYrYb#R=lgKZ zB<#RHVCVaA&Ldym-?ary%Khblwp^wv4ckNTZh=K`N|B{X`|N!07FdKG_z&Cp-YxLT UmxsEy!0WztuRR1G7I@_U1#CR+0G$`&>FcWC=O3cr7wY2!vb7)ur?h4O6PviUHe)2%r^SUiz~mfXoLX3#nwOl4 z#$`tFJ({Ej$X_}@otnVt5d?)E8ygE7II0>Wm?6Q*54I#Azqq6rOfaDsm;e?dB{;DL zWm;l#YEpiFHYiTef(?5pQxbZ-Ko7DqMKCb0VOq}|#SCJOg3%D5I0XEfPF_8?=fReE zb_Qhz22W4l%$(F>1&`9iymTW2Lo;0ib6q2I1p_lHQ)4S*b3GFS3k7Wh11kdq{IY)2 z?(Mtv_qG<)RIkd?Jl)7r1)t13{QB_A`ZP{m{BY62KicdJ@*u}P?dp6wZO*e9OYv*N zFYDRZIdT5HBhy*g86-i5zFgS%uP! z%Kwba?--chG2fv$(nk##4S~@R7&IXuz{D)h25yruu&S+jK0_*AfDv5;l>ecvd?uy` zOtnn1jC&bl8Ga2KPteREi5wgZ;)ddko}MMC#U&C(Zi*)g5VCR1$X*~m3J@k>^B_VtjtSX(;-dgz Q0s-?Gk { + let models = null; + let facebookHelper = null; + let result = null; + let friendlist = null; + + beforeEach(async (done) => { + try { + let userId = "914618278557777"; + let token = "EAACEdEose0cBAIFfdO1ntqFiR35bcdayXEn2g3VLQhB6oqwKpfS4DsZCzDgNOXO0Ps9oCZCMZCP8eNNltmEXe5cBBTlxQauQAovS9fPQ5jepVj7uT6ogHoRS2taO5dZAt3ZCWrYINeUeGYE9ifUNu5XGbYdZANsvIaAwIZCBxJQZAwZDZD"; + facebookHelper = new FacebookHelper({userId, token}); + models = await task1_initModel(); + + done(); + } catch (e) { + done(e); + } + }); + + + + it("朋友列表載入資料庫", async (done) => { + try { + + await models.sequelize.sync({force: true}) + + friendlist = await facebookHelper.getFriends(); + result = await models.Post.bulkCreate(friendlist); + + + friendlist[0].should.have.keys("name", "id"); + result.length.should.be.eq(friendlist.length); + + done(); + } catch (e) { + done(e); + } + }); + + it('尋找所有人', async (done) => { + try { + const result = await models.Post.findAll({ + where: { + id: { + $like: '%%', + }, + }, + }); + + (result.length === friendlist.length).should.be.true; + done(); + } catch (e) { + done(e); + } + }); + + it('更改id為100003672452522的信箱 ', async (done) => { + try { + let changeman = await models.Post.findById('100003672452522'); + changeman.email = 'hellojs@trunk.studio'; + console.log(changeman.email); + let result = await changeman.save(); + + (result.email === 'hellojs@trunk.studio').should.be.true; + + done(); + } catch (e) { + done(e); + } + }); + + it('刪除更改過的那一個', async (done) => { + try { + + let result = {}; + result = await models.Post.findOne({ + where: { + email: "hellojs@trunk.studio" + }, + }); + let befordestorylength = await models.Post.findAll(); + await result.destroy(); + let afterdestorylength = await models.Post.findAll(); + + //如果before被刪除一個 就是等於after - 1 + (afterdestorylength.length == befordestorylength.length - 1).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 9e748fd..7659892 100644 --- a/test/unit/database/practice.test.js +++ b/test/unit/database/practice.test.js @@ -1,7 +1,7 @@ import task1_initModel from '../../../src/database/task1'; import FacebookHelper from '../../../src/facebook/helper.js' -describe('facebook-helper2', () => { +describe.skip('facebook homework', () => { let models = null; let facebookHelper = null; let result = null; @@ -9,21 +9,8 @@ describe('facebook-helper2', () => { beforeEach(async (done) => { try { - /* let userId = "914618278557777"; - let token = "EAACEdEose0cBADYefvKTaZBjO9Llkhgz6UTVjuPIQ9sldZCdpN2mVDjsc5sX6urNkZAaSoxnCeunPb3Hv4GFNvVurGraQVvCRPUImwDf1Cy2pRhz4U641NC8I6XImJt396rDkvsMnt3JzLbQ3yhyAIu5xQSxljbRazFLW2GqAZDZD"; - facebookHelper = new FacebookHelper({userId, token}); - models = await task1_initModel(); - let friends = await facebookHelper.getFriends(); - let friendslength = friends.length; - result = await models.Post.bulkCreate(friends); - - (friends != null).should.be.true; - friends.should.be.Array; - friends[0].should.have.keys("name", "id"); - console.log("it's "+ friends.length);*/ - let userId = "914618278557777"; - let token = "EAACEdEose0cBAGZB8zbU71ZCnKC97fsfZAGhQFf15xash0ZAHqCbP66ZA7geF3nQL1b2gZC3vAGdN29cZAW5j1UZAmXYvhh4LQs1iZBLrOsFxG1qmrSlNDSsmivo3kZBq5kNW29buTj690A1om5YZA60U943hHBHlHQKUdSgpsfvkqUlAZDZD"; + let token = "EAACEdEose0cBAOg1BalkuZBEXawBmx3wfmP8gi0Swqn7ZC7E4ZBdhum4pezttrlfZClJnMjOI761T657yts3eryTdeAmVxhka3hHINcJYxJ9VF9eHa8AMsnYO8ZAAylBU3wo8w7ZAMcElWWK9w4luMyZCC3A1oFlwv4JFvxTMhZC0gZDZD"; facebookHelper = new FacebookHelper({userId, token}); models = await task1_initModel(); @@ -35,10 +22,10 @@ describe('facebook-helper2', () => { - it.skip("create", async (done) => { + it("朋友列表載入資料庫", async (done) => { try { - await models.sequelize.sync({force: true}) + await models.sequelize.sync({force: true}) friendlist = await facebookHelper.getFriends(); result = await models.Post.bulkCreate(friendlist); @@ -53,59 +40,53 @@ describe('facebook-helper2', () => { } }); - it.skip('find', async (done) => { + it('尋找所有人', async (done) => { try { const result = await models.Post.findAll({ where: { id: { - $like: '%1%', + $like: '%%', }, }, }); - console.log("fuckq"); - console.log(result) - console.log("fuckq"); + (result.length === friendlist.length).should.be.true; done(); } catch (e) { done(e); } }); - it.skip('update ', async (done) => { + it('更改id為100003672452522的信箱 ', async (done) => { try { + let changeman = await models.Post.findById('100003672452522'); + changeman.email = 'hellojs@trunk.studio'; + console.log(changeman.email); + let result = await changeman.save(); + + (result.email === 'hellojs@trunk.studio').should.be.true; - let result = {}; - result = await models.Post.findOne({ - where: { - id: "100003672452522" - }, - }); - console.log(result.email); - result.email = 'hellojs@trunk.studio'; - console.log(result.email); - await result.save(); - done(); } catch (e) { done(e); } }); - it.skip('使用 sequelize 刪除 targetPost', async (done) => { + it('刪除更改過的那一個', async (done) => { try { let result = {}; result = await models.Post.findOne({ where: { - id: "100003672452522" + email: "hellojs@trunk.studio" }, }); + let befordestorylength = await models.Post.findAll(); await result.destroy(); + let afterdestorylength = await models.Post.findAll(); - let check = await models.Post.findAll(); - - //(check.length === 0).should.be.true; + //如果before被刪除一個 就是等於after - 1 + (afterdestorylength.length == befordestorylength.length - 1).should.be.true; done(); } catch (e) { done(e);