-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
2,177 additions
and
315 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
require('dotenv').config() | ||
const request = require('supertest'); | ||
const server = require("../server/app"); | ||
const { expect } = require('chai'); | ||
const seed = require('./seed'); | ||
const log = require('loglevel'); | ||
const Transfer = require("../server/models/Transfer"); | ||
const TrustRelationship = require("../server/models/TrustRelationship"); | ||
const sinon = require("sinon"); | ||
const chai = require("chai"); | ||
chai.use(require('chai-uuid')); | ||
|
||
describe('Authentication', () => { | ||
let bearerToken; | ||
let bearerTokenB; | ||
|
||
before( async () => { | ||
await seed.clear(); | ||
await seed.seed(); | ||
}); | ||
|
||
beforeEach(async () => { | ||
sinon.restore(); | ||
}) | ||
|
||
// Authorization path | ||
it(`[POST /auth] login with ${seed.wallet.name}`, (done) => { | ||
request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', seed.apiKey) | ||
.send({wallet: seed.wallet.name, password: seed.wallet.password}) | ||
.expect('Content-Type', /application\/json/) | ||
.expect(200) | ||
.end((err, res) => { | ||
if (err) done(err); | ||
expect(res.body).to.have.property('token'); | ||
done(); | ||
}); | ||
}); | ||
|
||
|
||
it(`[POST /auth] login with using wallet id: ${seed.wallet.id}`, (done) => { | ||
request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', apiKey) | ||
.send({wallet: seed.wallet.id, password: seed.wallet.password}) | ||
.expect('Content-Type', /application\/json/) | ||
.expect(200) | ||
.end((err, res) => { | ||
if (err) done(err); | ||
expect(res.body).to.have.property('token'); | ||
done(); | ||
}); | ||
}); | ||
|
||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
require('dotenv').config() | ||
const request = require('supertest'); | ||
const server = require("../server/app"); | ||
const { expect } = require('chai'); | ||
const seed = require('./seed'); | ||
const log = require('loglevel'); | ||
const Transfer = require("../server/models/Transfer"); | ||
const TrustRelationship = require("../server/models/TrustRelationship"); | ||
const sinon = require("sinon"); | ||
const chai = require("chai"); | ||
chai.use(require('chai-uuid')); | ||
|
||
const apiKey = seed.apiKey; | ||
|
||
describe('Create and accept a bundle transfer', () => { | ||
|
||
let bearerToken; | ||
let bearerTokenB; | ||
let pendingTransfer; | ||
|
||
before( async () => { | ||
|
||
await seed.clear(); | ||
await seed.seed(); | ||
|
||
{ | ||
// Authorizes before each of the follow tests | ||
const res = await request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', apiKey) | ||
.send({ | ||
wallet: seed.wallet.name, | ||
password: seed.wallet.password, | ||
}); | ||
expect(res).to.have.property('statusCode', 200); | ||
bearerToken = res.body.token; | ||
expect(bearerToken).to.match(/\S+/); | ||
} | ||
|
||
{ | ||
// Authorizes before each of the follow tests | ||
const res = await request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', apiKey) | ||
.send({ | ||
wallet: seed.walletB.name, | ||
password: seed.walletB.password, | ||
}); | ||
expect(res).to.have.property('statusCode', 200); | ||
bearerTokenB = res.body.token; | ||
expect(bearerTokenB).to.match(/\S+/); | ||
} | ||
}); | ||
|
||
beforeEach(async () => { | ||
sinon.restore(); | ||
}) | ||
|
||
|
||
it(`create Bundle transfer tokens from ${seed.wallet.name} to ${seed.walletB.name}`, async () => { | ||
const res = await request(server) | ||
.post("/transfers") | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`) | ||
.send({ | ||
bundle: { | ||
bundle_size: 1, | ||
}, | ||
sender_wallet: seed.wallet.name, | ||
receiver_wallet: seed.walletB.name, | ||
}); | ||
expect(res).property("statusCode").to.eq(202); | ||
pendingTransfer = res.body | ||
expect(res).property("body").property("parameters").property("bundle").property("bundleSize").eq(1); | ||
}) | ||
|
||
it("Delete/cancel the pending transfer", async () => { | ||
const res = await request(server) | ||
.del(`/transfers/${pendingTransfer.id}`) | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
}) | ||
|
||
it(`Wallet:${seed.wallet.name} should be able to find the transfer, it should be cancelled`, async () => { | ||
const res = await request(server) | ||
.get(`/transfers?limit=1000`) | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
expect(res.body.transfers).lengthOf(1); | ||
expect(res.body.transfers[0]).property("state").eq(Transfer.STATE.cancelled); | ||
}); | ||
}); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
require('dotenv').config() | ||
const request = require('supertest'); | ||
const server = require("../server/app"); | ||
const { expect } = require('chai'); | ||
const seed = require('./seed'); | ||
const log = require('loglevel'); | ||
const Transfer = require("../server/models/Transfer"); | ||
const TrustRelationship = require("../server/models/TrustRelationship"); | ||
const sinon = require("sinon"); | ||
const chai = require("chai"); | ||
chai.use(require('chai-uuid')); | ||
|
||
const apiKey = seed.apiKey; | ||
|
||
describe('Create and accept a bundle transfer', () => { | ||
|
||
let bearerToken; | ||
let bearerTokenB; | ||
let pendingTransfer; | ||
|
||
before( async () => { | ||
|
||
await seed.clear(); | ||
await seed.seed(); | ||
|
||
{ | ||
// Authorizes before each of the follow tests | ||
const res = await request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', apiKey) | ||
.send({ | ||
wallet: seed.wallet.name, | ||
password: seed.wallet.password, | ||
}); | ||
expect(res).to.have.property('statusCode', 200); | ||
bearerToken = res.body.token; | ||
expect(bearerToken).to.match(/\S+/); | ||
} | ||
|
||
{ | ||
// Authorizes before each of the follow tests | ||
const res = await request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', apiKey) | ||
.send({ | ||
wallet: seed.walletB.name, | ||
password: seed.walletB.password, | ||
}); | ||
expect(res).to.have.property('statusCode', 200); | ||
bearerTokenB = res.body.token; | ||
expect(bearerTokenB).to.match(/\S+/); | ||
} | ||
}); | ||
|
||
beforeEach(async () => { | ||
sinon.restore(); | ||
}) | ||
|
||
|
||
it(`create Bundle transfer tokens from ${seed.wallet.name} to ${seed.walletB.name}`, async () => { | ||
const res = await request(server) | ||
.post("/transfers") | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`) | ||
.send({ | ||
bundle: { | ||
bundle_size: 1, | ||
}, | ||
sender_wallet: seed.wallet.name, | ||
receiver_wallet: seed.walletB.name, | ||
}); | ||
expect(res).property("statusCode").to.eq(202); | ||
expect(res).property("body").property("parameters").property("bundle").property("bundleSize").eq(1); | ||
}) | ||
|
||
|
||
it("get all pending transfers belongs to walletB, should have one", async () => { | ||
const res = await request(server) | ||
.get('/transfers?state=pending&limit=1000') | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerTokenB}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
expect(res.body.transfers).lengthOf(1); | ||
pendingTransfer = res.body.transfers[0]; | ||
expect(pendingTransfer).property("destination_wallet").eq(seed.walletB.name); | ||
}) | ||
|
||
it("Accept the pending bundle transfer", async () => { | ||
const res = await request(server) | ||
.post(`/transfers/${pendingTransfer.id}/accept`) | ||
.set('Content-Type', "application/json") | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerTokenB}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
}) | ||
|
||
it(`Wallet:${seed.wallet.name} should be able to find the transfer, it should be completed 2`, async () => { | ||
const res = await request(server) | ||
.get(`/transfers?limit=1000`) | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`); | ||
console.log(res.body) | ||
expect(res).to.have.property('statusCode', 200); | ||
expect(res.body.transfers).lengthOf(1); | ||
expect(res.body.transfers[0]).property("state").eq(Transfer.STATE.completed); | ||
}); | ||
|
||
it(`Token:#${seed.token.id} now should belong to ${seed.walletB.name}`, async () => { | ||
const res = await request(server) | ||
.get(`/tokens/${seed.token.id}`) | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerTokenB}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
expect(res.body.wallet_id).eq(seed.walletB.id); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
require('dotenv').config() | ||
const request = require('supertest'); | ||
const server = require("../server/app"); | ||
const { expect } = require('chai'); | ||
const seed = require('./seed'); | ||
const log = require('loglevel'); | ||
const Transfer = require("../server/models/Transfer"); | ||
const TrustRelationship = require("../server/models/TrustRelationship"); | ||
const sinon = require("sinon"); | ||
const chai = require("chai"); | ||
chai.use(require('chai-uuid')); | ||
|
||
const apiKey = seed.apiKey; | ||
|
||
describe('Create and accept a bundle transfer', () => { | ||
|
||
let bearerToken; | ||
let bearerTokenB; | ||
let pendingTransfer; | ||
|
||
before( async () => { | ||
|
||
await seed.clear(); | ||
await seed.seed(); | ||
|
||
{ | ||
// Authorizes before each of the follow tests | ||
const res = await request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', apiKey) | ||
.send({ | ||
wallet: seed.wallet.name, | ||
password: seed.wallet.password, | ||
}); | ||
expect(res).to.have.property('statusCode', 200); | ||
bearerToken = res.body.token; | ||
expect(bearerToken).to.match(/\S+/); | ||
} | ||
|
||
{ | ||
// Authorizes before each of the follow tests | ||
const res = await request(server) | ||
.post('/auth') | ||
.set('treetracker-api-key', apiKey) | ||
.send({ | ||
wallet: seed.walletB.name, | ||
password: seed.walletB.password, | ||
}); | ||
expect(res).to.have.property('statusCode', 200); | ||
bearerTokenB = res.body.token; | ||
expect(bearerTokenB).to.match(/\S+/); | ||
} | ||
}); | ||
|
||
beforeEach(async () => { | ||
sinon.restore(); | ||
}) | ||
|
||
|
||
it(`create Bundle transfer tokens from ${seed.wallet.name} to ${seed.walletB.name}`, async () => { | ||
const res = await request(server) | ||
.post("/transfers") | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`) | ||
.send({ | ||
bundle: { | ||
bundle_size: 1, | ||
}, | ||
sender_wallet: seed.wallet.name, | ||
receiver_wallet: seed.walletB.name, | ||
}); | ||
expect(res).property("statusCode").to.eq(202); | ||
expect(res).property("body").property("parameters").property("bundle").property("bundleSize").eq(1); | ||
}) | ||
|
||
|
||
it("get all pending transfers belongs to walletB, should have one", async () => { | ||
const res = await request(server) | ||
.get('/transfers?state=pending&limit=1000') | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerTokenB}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
expect(res.body.transfers).lengthOf(1); | ||
pendingTransfer = res.body.transfers[0]; | ||
expect(pendingTransfer).property("destination_wallet").eq(seed.walletB.name); | ||
}) | ||
|
||
it("Decline the pending transfer", async () => { | ||
const res = await request(server) | ||
.post(`/transfers/${pendingTransfer.id}/decline`) | ||
.set('Content-Type', "application/json") | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerTokenB}`); | ||
console.log(res.body) | ||
expect(res).to.have.property('statusCode', 200); | ||
}) | ||
|
||
it(`Wallet:${seed.wallet.name} should be able to find the transfer, it should be cancelled`, async () => { | ||
const res = await request(server) | ||
.get(`/transfers?limit=1000`) | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
expect(res.body.transfers).lengthOf(1); | ||
expect(res.body.transfers[0]).property("state").eq(Transfer.STATE.cancelled); | ||
}); | ||
|
||
it(`Token:#${seed.token.id} now should still belong to ${seed.wallet.name}`, async () => { | ||
const res = await request(server) | ||
.get(`/tokens/${seed.token.id}`) | ||
.set('treetracker-api-key', apiKey) | ||
.set('Authorization', `Bearer ${bearerToken}`); | ||
expect(res).to.have.property('statusCode', 200); | ||
expect(res.body.wallet_id).eq(seed.wallet.id); | ||
}); | ||
}); |
Oops, something went wrong.