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.
2 changes: 1 addition & 1 deletion src/database/task1.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
5 changes: 3 additions & 2 deletions src/models/post.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {
Expand Down
101 changes: 101 additions & 0 deletions test/unit/database/facebook.test.js
Original file line number Diff line number Diff line change
@@ -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);
}
});


});

///


144 changes: 63 additions & 81 deletions test/unit/database/practice.test.js
Original file line number Diff line number Diff line change
@@ -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);
}
});
});
});
2 changes: 2 additions & 0 deletions test/unit/database/task2.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
5 changes: 3 additions & 2 deletions test/unit/facebook/helper.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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) {
Expand Down