Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified database.db
Binary file not shown.
14 changes: 14 additions & 0 deletions src/models/friend.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'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;
};
81 changes: 81 additions & 0 deletions test/unit/facebook/friend.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import task1_initModel from '../../../src/database/task1';
import FacebookHelper from '../../../src/facebook/helper.js'

describe.only('Test models for friend.js', () => {
let facebookHelper = null;
let model = null;
let fbFriendList = [];

before( async (done) => {
let userId = "685135364915800";
let token = "EAACEdEose0cBABQaouDe4W7a8gsSeZAiDP2s04bdnAAsZBLkCRS9x4Oj5UlnZBIwXd6cbFArLyhANSW19P5Ou3eHpk0r09tnjL9ZBboJZCTUusCozWu717lZBpOSDkeOlfSl7GYZBXSqqj5ARdxUtM3GKPSjz3bLZCMwbME2YKZCiwwZDZD";
facebookHelper = await new FacebookHelper({userId, token});
model = await task1_initModel();
console.log(facebookHelper);
done();
});

// 1
it('把從 facebook 取得的 friends list 存入 sequelize 之 friend model (create)', async (done) => {
try {
fbFriendList = await facebookHelper.getFriends();
console.log(fbFriendList);
let result = await model.friend.bulkCreate(fbFriendList);
result.length.should.be.eq(fbFriendList.length);
done();
} catch(e) {
done(e);
}
});

// 2
it('原本用 api 取得 friends list 改為透過查詢資料庫的方式 (find)', async (done) => {
try {
let findFriend = await model.friend.findOne({
where: {
name: '賴念翔'
},
});
findFriend.name.should.be.eq(fbFriendList[0].name);
done();
} catch(e) {
done(e);
}
});

// 3
it('將其中一個 friend 更新其 email 欄位為 hellojs@trunk.studio (update)', async (done) => {
try {
let friend = await model.friend.findById(fbFriendList[1].id);
friend.email = 'hellojs@trunk.studio';
await friend.save();
friend.email.should.be.eq('hellojs@trunk.studio');
done();
} catch(e) {
done(e);
}
});

// 4
it('刪除該位 friend (delete)', async (done) => {
try {
let friend = await model.friend.findOne({
where: {
name: '萬鴻曜'
},
});
await friend.destroy();

let test = await model.friend.findOne({
where: {
name: '萬鴻曜'
},
});

(test === null).should.be.true;
done();
} catch(e) {
done(e);
}
});
});