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.
17 changes: 17 additions & 0 deletions src/models/friends.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
'use strict';

module.exports = (sequelize, DataTypes) => {
var friends = sequelize.define ('friends', {
name: DataTypes.STRING,
email: DataTypes.STRING,
facebookId: DataTypes.STRING
}, {
classMethods: {
associate: (models) => {
}
}
});

return friends;

}
1 change: 1 addition & 0 deletions src/models/post.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {
Expand Down
15 changes: 10 additions & 5 deletions test/unit/database/practice.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down Expand Up @@ -74,7 +74,8 @@ describe('practice', () => {
it('使用 sequelize 尋找 targetPost ', async (done) => {
try {

let findTarget;
let findTarget = await models.Post.findOne({id: targetPost.id});
//models.Post.findById(targetPost.id) 也會pass

findTarget.id.should.be.eq(targetPost.id);
done();
Expand All @@ -91,8 +92,11 @@ describe('practice', () => {
price: 999,
}

let findTarget;
let result;
let findTarget = await models.Post.findById(targetPost.id);
findTarget.title = input.title;
findTarget.desc = input.desc;
findTarget.price = input.price;
let result = await findTarget.save();

result.title.should.be.eq(input.title);
result.desc.should.be.eq(input.desc);
Expand All @@ -106,7 +110,8 @@ describe('practice', () => {
it('使用 sequelize 刪除 targetPost', async (done) => {
try {

let findTarget;
let findTarget = await models.Post.findById(targetPost.id);
await findTarget.destroy();

let check = await models.Post.findAll();
(check.length === 0).should.be.true;
Expand Down
124 changes: 124 additions & 0 deletions test/unit/facebook/friends.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
import FacebookHelper from '../../../src/facebook/helper.js'
import task1_initModel from '../../../src/database/task1';

describe.only('Facebook model test here', () => {
let facebookHelper = null;
let model = null;
let rawFriends = [];
let friends = [];

before( async (done) => {

let userId = "718145738235098";
let token = "EAACEdEose0cBAAf3LjhVUNt2RFiaLwAeYKEutSUjb707wZABVylwox6CeZBW5kSvCZCAQM2Dg5PTeFk67NvmCzBTYWEaAMgJKXmzx4sWDFUAtlKP0pe7HoauD5cH8kAp3NaExlLbmtVqrqf1QNZCOY3tfTs10CYibGkzAeojLwZDZD";
facebookHelper = await new FacebookHelper({userId, token});
model = await task1_initModel();

try {
rawFriends = await facebookHelper.getFriends()

done();
} catch(e) {
done(e);
}
});

it('If friends from FB API should not empty', () => {
rawFriends.length.should.be.above(0);
});

it('Create your friends list', async (done) => {

try {
let formattedFriends = rawFriends.map((rawFriend) => {
let friend = {};
friend.name = rawFriend.name;
friend.email = rawFriend.email;
friend.facebookId = rawFriend.id;

return friend;
});

// console.log(`friendsList:::::${friendsList}`);
// console.log(`Model: ${model}, friends: ${model.friends}`);
friends = await model.friends.bulkCreate(formattedFriends);

friends.length.should.be.eq(rawFriends.length);

done();
} catch(e) {
done(e);
}

});

it('Find your friend', async (done) => {
try {

let resultFriends = await model.friends.findAll();

let dataFbIds = resultFriends.map((resultfriend) => {
return resultfriend.facebookId;
});
console.log(dataFbIds);

let apiFriendsId = rawFriends.map((friend) => {
return friend.id;
});
console.log(apiFriendsId);

dataFbIds.should.be.eql(apiFriendsId);
// resultFriend.should.not.be.eq(null);

done();

} catch(e){
done(e);
}

});

it('Update your friends data', async (done) => {
try {
const targetData = {
name: 'Trunk-studio',
email: 'hellojs@trunk.studio',
}

rawFriends.length.should.be.above(4);

let friendToUpdate = await model.friends.findOne({facebookId: rawFriends[3].id});
console.log(`friendToUpdate: ${friendToUpdate}`);

friendToUpdate.name = targetData.name;
friendToUpdate.email = targetData.email;

let result = await friendToUpdate.save();

result.name.should.be.eq(targetData.name);
result.email.should.be.eq(targetData.email);

done();
} catch(e) {
done(e);
}
});


it('Delete your friend data', async (done) =>{
try{

let trunk = await model.friends.findOne({ where : {name: 'Trunk-studio'}});

console.log(`trunk::: ${trunk}`);
await trunk.destroy();

let check = await model.friends.findOne({ where : {name: 'Trunk-studio'}});
(check === null).should.be.true;

done();
} catch(e){
done(e);
}
});
});
6 changes: 4 additions & 2 deletions test/unit/facebook/helper.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import FacebookHelper from '../../../src/facebook/helper.js'


describe('facebook-helper', () => {
let facebookHelper = null;


before((done) => {
let userId = "";
let token = "";
let userId = "718145738235098";
let token = "EAACEdEose0cBAEkcosKegVyQm61gWxVDCTGg4l1VSnoT2Y3aQUq4t96IjHKETxzPuMK0HNsDdkONInFHdugqUIUDNXt6uBNP4IUaBk1Sr5P2qPTNGgiLmZBmGsiRHz0PNFCWTs5T1e5qgJYOBuy9ZC2kcGR8f1rfcAAam9dAZDZD";
facebookHelper = new FacebookHelper({userId, token});
console.log(facebookHelper);
done();
Expand Down