diff --git a/database.db b/database.db index 3f8ea29..43bec3d 100644 Binary files a/database.db and b/database.db differ 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..3f3bfb5 --- /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('將其中一個 friend 更新其 email 欄位為 hellojs@trunk.studio (update)', 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('刪除該位 friend (delete)', 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();