diff --git a/database.db b/database.db index 3f8ea29..5e9b6c9 100644 Binary files a/database.db and b/database.db differ 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();