diff --git a/src/models/friend.js b/src/models/friend.js new file mode 100644 index 0000000..d604af4 --- /dev/null +++ b/src/models/friend.js @@ -0,0 +1,16 @@ +'use strict'; + +module.exports = (sequelize, DataTypes) => { + var friends = sequelize.define('friends', { + name: DataTypes.STRING, + facebookId: DataTypes.STRING, + email: DataTypes.STRING + }, { + classMethods: { + associate: (models) => { + } + } + }); + + return friends; +}; diff --git a/src/models/post.js b/src/models/post.js index 9f437cf..f47bb26 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/facebook/friendlist.test.js b/test/unit/facebook/friendlist.test.js new file mode 100644 index 0000000..81758bb --- /dev/null +++ b/test/unit/facebook/friendlist.test.js @@ -0,0 +1,98 @@ +import FacebookHelper from '../../../src/facebook/helper.js' +import task1_initModel from '../../../src/database/task1'; + +describe.only('facebook', () => { + let facebookHelper = null; + let models = null; + let friends = null; + let user = {}; + + before( async function(done){ + let userId = ""; + let token = ""; + models = await task1_initModel(); + facebookHelper = new FacebookHelper({userId, token}); + //console.log(facebookHelper); + done(); + }); + describe('facebook friend', () => { + it("get friends list", async (done) => { + try { + friends = await facebookHelper.getFriends(); + console.log("friends", friends); + (friends != null).should.be.true; + friends.should.be.Array; + friends[0].should.have.keys("name", "id"); + done(); + } catch (e) { + done(e); + } + }); + it("save to datebase", async (done) => { + try { + let count = 0; + for (count = 0 ; count < friends.length ; count++){ + let addUser = {name: friends[count].name, facebookId: friends[count].id} + user = await models.friends.create(addUser); + user.toJSON().should.has.keys( + 'id', + 'name', + 'facebookId', + //'email', + 'createdAt', + 'updatedAt' + ); + } + done(); + } catch (e) { + done(e); + } + }); + }); + describe('datebase', () => { + it('get friend', async (done) => { + try{ + let result = await models.friends.findAll(); + result.length.should.be.equal(friends.length); + done(); + } + catch(e){ + done(e); + } + }); + it('change email to hellojs@trunk.studio', async (done) => { + try{ + let friend_1 = friends[0].id; + let f1_data = await models.friends.findOne({ + where: { + facebookId: friend_1 + } + }); + f1_data.email = 'hellojs@trunk.studio'; + let result = await f1_data.save(); + console.log(result.name , result.id , result.email); + result.email.should.equal('hellojs@trunk.studio'); + done(); + } + catch(e){ + done(e); + } + }); + it('delete friend email is hellojs@trunk.studio', async (done) => { + try{ + let del_friend = await models.friends.findOne({ + where:{email:'hellojs@trunk.studio'} + }); + await del_friend.destroy(); + let result = await models.friends.findOne({ + where:{email:'hellojs@turnk.studio'} + }); + (result === null ).should.be.true; + done(); + } + catch(e){ + done(e); + } + }); + }); +}); diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index 6856c56..48884e7 100644 --- a/test/unit/facebook/helper.test.js +++ b/test/unit/facebook/helper.test.js @@ -1,7 +1,9 @@ import FacebookHelper from '../../../src/facebook/helper.js' +//import task1_initModel from '../../../src/database/task1'; -describe('facebook-helper', () => { +describe.skip('facebook-helper', () => { let facebookHelper = null; + //let models = null; before((done) => { let userId = ""; @@ -11,6 +13,15 @@ describe('facebook-helper', () => { done(); }); + /*beforeEach(async (done) => { + try { + models = await task1_initModel() + done() + } catch (e) { + done(e) + } + });*/ + it("get friends list", async (done) => { try { let friends = await facebookHelper.getFriends(); @@ -18,13 +29,27 @@ describe('facebook-helper', () => { (friends != null).should.be.true; friends.should.be.Array; friends[0].should.have.keys("name", "id"); + /*let count = 0; + for (count = 0 ; count < friends.length ; count++){ + let addUser = {name: friends[count].name, facebookId: friends[count].id} + let result = {}; + result = await models.friends.create(addUser); + result.toJSON().should.has.keys( + 'id', + 'name', + 'facebookId', + //'email', + 'createdAt', + 'updatedAt' + ); + }*/ done(); } catch (e) { done(e); } }); - it.skip("publish post", async (done) => { + it("publish post", async (done) => { try { let post = { message: 'test facebook post api'