diff --git a/database.db b/database.db index 3f8ea29..bfd8ab8 100644 Binary files a/database.db and b/database.db differ diff --git a/src/database/task1.js b/src/database/task1.js index ae82e4d..784b9f4 100644 --- a/src/database/task1.js +++ b/src/database/task1.js @@ -2,6 +2,6 @@ import models from '../models' export default async function task1_initModel() { - await models.sequelize.sync({force: true}) + await models.sequelize.sync({force: false}) return models; } 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/facebook.test.js b/test/unit/database/facebook.test.js new file mode 100644 index 0000000..2bb2670 --- /dev/null +++ b/test/unit/database/facebook.test.js @@ -0,0 +1,101 @@ +import task1_initModel from '../../../src/database/task1'; +import FacebookHelper from '../../../src/facebook/helper.js' + +describe.only('facebook homework', () => { + 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 8918755..7659892 100644 --- a/test/unit/database/practice.test.js +++ b/test/unit/database/practice.test.js @@ -1,119 +1,101 @@ import task1_initModel from '../../../src/database/task1'; +import FacebookHelper from '../../../src/facebook/helper.js' -describe('practice', () => { - let models = null; - beforeEach(async (done) => { +describe.skip('facebook homework', () => { + let models = null; + let facebookHelper = null; + let result = null; + let friendlist = null; + + beforeEach(async (done) => { try { + let userId = "914618278557777"; + let token = "EAACEdEose0cBAOg1BalkuZBEXawBmx3wfmP8gi0Swqn7ZC7E4ZBdhum4pezttrlfZClJnMjOI761T657yts3eryTdeAmVxhka3hHINcJYxJ9VF9eHa8AMsnYO8ZAAylBU3wo8w7ZAMcElWWK9w4luMyZCC3A1oFlwv4JFvxTMhZC0gZDZD"; + facebookHelper = new FacebookHelper({userId, token}); models = await task1_initModel(); + done(); } catch (e) { done(e); } }); - it('在資料庫中 Post table 中新增一個 price 欄位 data types 為 INTEGER', async (done) => { + + + it("朋友列表載入資料庫", 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); + + 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('使用 sequelize 新增一個 post 使測試 pass', async (done) => { + + it('尋找所有人', 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: '%%', + }, + }, + }); + + (result.length === friendlist.length).should.be.true; done(); } catch (e) { done(e); } }); - - describe('practice find', () => { - let models = null; - let targetPost = null - beforeEach(async (done) => { + + it('更改id為100003672452522的信箱 ', async (done) => { try { - models = await task1_initModel(); - const data = { - title: 'post a', - desc: 'post desc', - price: 100, - }; - targetPost = await models.Post.create(data); + 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('使用 sequelize 尋找 targetPost ', async (done) => { + + it('刪除更改過的那一個', async (done) => { try { - let findTarget; - - findTarget.id.should.be.eq(targetPost.id); - done(); - } catch (e) { - done(e); - } - }); - - it('使用 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: { + 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); } }); + + +}); - 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) {