From dc8b5d1b2a816d807635e4efb097ec0bc1fc17a4 Mon Sep 17 00:00:00 2001 From: jimmy8319045 Date: Thu, 28 Jul 2016 17:20:32 +0800 Subject: [PATCH 1/2] add facebook friend save to datebase --- src/models/friend.js | 16 +++++ src/models/post.js | 1 + test/unit/facebook/friendlist.test.js | 98 +++++++++++++++++++++++++++ test/unit/facebook/helper.test.js | 33 +++++++-- 4 files changed, 144 insertions(+), 4 deletions(-) create mode 100644 src/models/friend.js create mode 100644 test/unit/facebook/friendlist.test.js 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..0166ff6 --- /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 = "742593049095212"; + let token = "EAACEdEose0cBAAbNDJvMg9CvbInmC6PcXyhTIU8YSVNN3uSVrtqDyUQ27R8ey0XdFAz3FCBchzxXhOm2JxFizdzxz8XHVcpDwFZBqLtVOZBz8stZAMZCJxjfhxiP5Di7ilsADhXJtwBTMZAj1DuvF1NIeilRfWTcNrJvdyx4xsYQIcFhuJOWsrGX3BnjlFZC0ZD"; + 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..193f7e7 100644 --- a/test/unit/facebook/helper.test.js +++ b/test/unit/facebook/helper.test.js @@ -1,16 +1,27 @@ 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 = ""; - let token = ""; + let userId = "742593049095212"; + let token = "EAACEdEose0cBAPZCVgowUe8pHaHgCcIZAEBauslr1nkvjGxHTnkUn4pKmaVVWJkIuzWgMZCRoWEoS6XNkQWZB9QmuYbaxi7H2iGZCVh2XDs6xUZCNf3mE0hYCWf6YYQXbFqfuiExnJP8POmw0x0UsA8W7MZCjAbsVkdZCZBonsZBXs2ZBAqgqJpfZBIm5SYgio1hEvsZD"; facebookHelper = new FacebookHelper({userId, token}); console.log(facebookHelper); 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' From 28a37d655668b49571fd8bffcdc0279fdd9277b9 Mon Sep 17 00:00:00 2001 From: jimmy8319045 Date: Thu, 28 Jul 2016 17:30:17 +0800 Subject: [PATCH 2/2] facebook friend --- test/unit/facebook/friendlist.test.js | 4 ++-- test/unit/facebook/helper.test.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/unit/facebook/friendlist.test.js b/test/unit/facebook/friendlist.test.js index 0166ff6..81758bb 100644 --- a/test/unit/facebook/friendlist.test.js +++ b/test/unit/facebook/friendlist.test.js @@ -8,8 +8,8 @@ describe.only('facebook', () => { let user = {}; before( async function(done){ - let userId = "742593049095212"; - let token = "EAACEdEose0cBAAbNDJvMg9CvbInmC6PcXyhTIU8YSVNN3uSVrtqDyUQ27R8ey0XdFAz3FCBchzxXhOm2JxFizdzxz8XHVcpDwFZBqLtVOZBz8stZAMZCJxjfhxiP5Di7ilsADhXJtwBTMZAj1DuvF1NIeilRfWTcNrJvdyx4xsYQIcFhuJOWsrGX3BnjlFZC0ZD"; + let userId = ""; + let token = ""; models = await task1_initModel(); facebookHelper = new FacebookHelper({userId, token}); //console.log(facebookHelper); diff --git a/test/unit/facebook/helper.test.js b/test/unit/facebook/helper.test.js index 193f7e7..48884e7 100644 --- a/test/unit/facebook/helper.test.js +++ b/test/unit/facebook/helper.test.js @@ -6,8 +6,8 @@ describe.skip('facebook-helper', () => { //let models = null; before((done) => { - let userId = "742593049095212"; - let token = "EAACEdEose0cBAPZCVgowUe8pHaHgCcIZAEBauslr1nkvjGxHTnkUn4pKmaVVWJkIuzWgMZCRoWEoS6XNkQWZB9QmuYbaxi7H2iGZCVh2XDs6xUZCNf3mE0hYCWf6YYQXbFqfuiExnJP8POmw0x0UsA8W7MZCjAbsVkdZCZBonsZBXs2ZBAqgqJpfZBIm5SYgio1hEvsZD"; + let userId = ""; + let token = ""; facebookHelper = new FacebookHelper({userId, token}); console.log(facebookHelper); done();