mirror of
https://github.com/Permissionless-Software-Foundation/bch-js.git
synced 2026-09-22 17:12:01 -07:00
feat(ipfs): Removing the ipfs pinning libraries and dependencies
This commit is contained in:
@@ -1,443 +0,0 @@
|
||||
/*
|
||||
Unit tests for the IPFS Class.
|
||||
*/
|
||||
|
||||
const assert = require('chai').assert
|
||||
const sinon = require('sinon')
|
||||
const BCHJS = require('../../src/bch-js')
|
||||
let bchjs
|
||||
|
||||
const mockData = require('./fixtures/ipfs-mock')
|
||||
|
||||
describe('#IPFS', () => {
|
||||
let sandbox
|
||||
|
||||
beforeEach(() => {
|
||||
sandbox = sinon.createSandbox()
|
||||
|
||||
bchjs = new BCHJS()
|
||||
})
|
||||
|
||||
afterEach(() => sandbox.restore())
|
||||
|
||||
describe('#initUppy', () => {
|
||||
it('should initialize uppy', () => {
|
||||
bchjs.IPFS.initUppy()
|
||||
})
|
||||
})
|
||||
|
||||
describe('#createFileModelServer', () => {
|
||||
it('should throw an error if file does not exist', async () => {
|
||||
try {
|
||||
const path = '/non-existant-file'
|
||||
|
||||
await bchjs.IPFS.createFileModelServer(path)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'Could not find this file')
|
||||
}
|
||||
})
|
||||
|
||||
it('should create a new file model', async () => {
|
||||
const path = `${__dirname.toString()}/ipfs.js`
|
||||
|
||||
sandbox
|
||||
.stub(bchjs.IPFS.axios, 'post')
|
||||
.resolves({ data: mockData.mockNewFileModel })
|
||||
|
||||
const result = await bchjs.IPFS.createFileModelServer(path)
|
||||
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
||||
|
||||
assert.property(result, 'success')
|
||||
assert.equal(result.success, true)
|
||||
|
||||
assert.property(result, 'hostingCostBCH')
|
||||
assert.property(result, 'hostingCostUSD')
|
||||
assert.property(result, 'file')
|
||||
|
||||
assert.property(result.file, 'payloadLink')
|
||||
assert.property(result.file, 'hasBeenPaid')
|
||||
assert.property(result.file, '_id')
|
||||
assert.property(result.file, 'schemaVersion')
|
||||
assert.property(result.file, 'size')
|
||||
assert.property(result.file, 'fileName')
|
||||
assert.property(result.file, 'fileExtension')
|
||||
assert.property(result.file, 'createdTimestamp')
|
||||
assert.property(result.file, 'hostingCost')
|
||||
assert.property(result.file, 'walletIndex')
|
||||
assert.property(result.file, 'bchAddr')
|
||||
})
|
||||
})
|
||||
|
||||
describe('#uploadFileServer', () => {
|
||||
it('should throw an error if file does not exist', async () => {
|
||||
try {
|
||||
const path = '/non-existant-file'
|
||||
|
||||
await bchjs.IPFS.uploadFileServer(path)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'Could not find this file')
|
||||
}
|
||||
})
|
||||
|
||||
it('should throw an error if modelId is not included', async () => {
|
||||
try {
|
||||
const path = `${__dirname.toString()}/ipfs.js`
|
||||
|
||||
await bchjs.IPFS.uploadFileServer(path)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'Must include a file model ID')
|
||||
}
|
||||
})
|
||||
|
||||
it('Should throw error if the file was not uploaded', async () => {
|
||||
try {
|
||||
const mock = {
|
||||
successful: [],
|
||||
failed: [
|
||||
{
|
||||
id: 'file id'
|
||||
}
|
||||
]
|
||||
}
|
||||
sandbox.stub(bchjs.IPFS.uppy, 'upload').resolves(mock)
|
||||
|
||||
const path = `${__dirname.toString()}/ipfs.js`
|
||||
await bchjs.IPFS.uploadFileServer(path, '5ec562319bfacc745e8d8a52')
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(err)
|
||||
assert.include(err.message, 'The file could not be uploaded')
|
||||
}
|
||||
})
|
||||
|
||||
it('should return file object if the file is uploaded', async () => {
|
||||
try {
|
||||
sandbox.stub(bchjs.IPFS.uppy, 'upload').resolves(mockData.uploadData)
|
||||
|
||||
const path = `${__dirname.toString()}/ipfs.js`
|
||||
const result = await bchjs.IPFS.uploadFileServer(
|
||||
path,
|
||||
'5ec562319bfacc745e8d8a52'
|
||||
)
|
||||
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
||||
|
||||
assert.property(result, 'schemaVersion')
|
||||
assert.property(result, 'size')
|
||||
assert.property(result, 'fileId')
|
||||
assert.property(result, 'fileName')
|
||||
assert.property(result, 'fileExtension')
|
||||
} catch (err) {
|
||||
// console.log(err)
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
describe('#getStatus', () => {
|
||||
it('should throw an error if modelId is not included', async () => {
|
||||
try {
|
||||
await bchjs.IPFS.getStatus()
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'Must include a file model ID')
|
||||
}
|
||||
})
|
||||
|
||||
it('should get data on an unpaid file', async () => {
|
||||
const modelId = '5ec7392c2acfe57aa62e945a'
|
||||
|
||||
sandbox
|
||||
.stub(bchjs.IPFS.axios, 'get')
|
||||
.resolves({ data: mockData.unpaidFileData })
|
||||
|
||||
const result = await bchjs.IPFS.getStatus(modelId)
|
||||
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
||||
|
||||
assert.property(result, 'hasBeenPaid')
|
||||
assert.property(result, 'satCost')
|
||||
assert.property(result, 'bchAddr')
|
||||
assert.property(result, 'ipfsHash')
|
||||
assert.property(result, 'fileId')
|
||||
assert.property(result, 'fileName')
|
||||
})
|
||||
|
||||
it('should get data on an unpaid file', async () => {
|
||||
const modelId = '5ec7392c2acfe57aa62e945a'
|
||||
|
||||
sandbox
|
||||
.stub(bchjs.IPFS.axios, 'get')
|
||||
.resolves({ data: mockData.paidFileData })
|
||||
|
||||
const result = await bchjs.IPFS.getStatus(modelId)
|
||||
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
||||
|
||||
assert.property(result, 'hasBeenPaid')
|
||||
assert.property(result, 'satCost')
|
||||
assert.property(result, 'bchAddr')
|
||||
assert.property(result, 'ipfsHash')
|
||||
assert.property(result, 'fileId')
|
||||
assert.property(result, 'fileName')
|
||||
})
|
||||
})
|
||||
|
||||
describe('#createFileModelWeb', () => {
|
||||
it('should throw an error if file is undefined', async () => {
|
||||
try {
|
||||
let file
|
||||
|
||||
await bchjs.IPFS.createFileModelWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'File is required')
|
||||
}
|
||||
})
|
||||
it('should throw an error if file is empty', async () => {
|
||||
try {
|
||||
const file = {}
|
||||
|
||||
await bchjs.IPFS.createFileModelWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(
|
||||
err.message,
|
||||
'File should have the property \'name\' of string type'
|
||||
)
|
||||
}
|
||||
})
|
||||
it("should throw an error if 'name' property is not included", async () => {
|
||||
try {
|
||||
const file = {
|
||||
size: 5000
|
||||
}
|
||||
|
||||
await bchjs.IPFS.createFileModelWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(
|
||||
err.message,
|
||||
'File should have the property \'name\' of string type'
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
it("should throw an error if 'size' property is not included", async () => {
|
||||
try {
|
||||
const file = {
|
||||
name: 'ipfs.js'
|
||||
}
|
||||
|
||||
await bchjs.IPFS.createFileModelWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(
|
||||
err.message,
|
||||
'File should have the property \'size\' of number type'
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
it('should create a new file model', async () => {
|
||||
const file = {
|
||||
name: 'ipfs.js',
|
||||
size: 5000,
|
||||
type: 'text/plain'
|
||||
}
|
||||
sandbox
|
||||
.stub(bchjs.IPFS.axios, 'post')
|
||||
.resolves({ data: mockData.mockNewFileModel })
|
||||
|
||||
const result = await bchjs.IPFS.createFileModelWeb(file)
|
||||
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
||||
|
||||
assert.property(result, 'success')
|
||||
assert.equal(result.success, true)
|
||||
|
||||
assert.property(result, 'hostingCostBCH')
|
||||
assert.property(result, 'hostingCostUSD')
|
||||
assert.property(result, 'file')
|
||||
|
||||
assert.property(result.file, 'payloadLink')
|
||||
assert.property(result.file, 'hasBeenPaid')
|
||||
assert.property(result.file, '_id')
|
||||
assert.property(result.file, 'schemaVersion')
|
||||
assert.property(result.file, 'size')
|
||||
assert.property(result.file, 'fileName')
|
||||
assert.property(result.file, 'fileExtension')
|
||||
assert.property(result.file, 'createdTimestamp')
|
||||
assert.property(result.file, 'hostingCost')
|
||||
assert.property(result.file, 'walletIndex')
|
||||
assert.property(result.file, 'bchAddr')
|
||||
})
|
||||
})
|
||||
|
||||
describe('#uploadFileWeb', () => {
|
||||
it('should throw an error if file is undefined', async () => {
|
||||
try {
|
||||
let file
|
||||
|
||||
await bchjs.IPFS.uploadFileWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'File is required')
|
||||
}
|
||||
})
|
||||
it('should throw an error if file is empty', async () => {
|
||||
try {
|
||||
const file = {}
|
||||
|
||||
await bchjs.IPFS.uploadFileWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(
|
||||
err.message,
|
||||
'File should have the property \'name\' of string type'
|
||||
)
|
||||
}
|
||||
})
|
||||
it("should throw an error if 'name' property is not included", async () => {
|
||||
try {
|
||||
const file = {
|
||||
size: 5000,
|
||||
type: 'text/plain'
|
||||
}
|
||||
|
||||
await bchjs.IPFS.uploadFileWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(
|
||||
err.message,
|
||||
'File should have the property \'name\' of string type'
|
||||
)
|
||||
}
|
||||
})
|
||||
it("should throw an error if 'size' property is not included", async () => {
|
||||
try {
|
||||
const file = {
|
||||
name: 'ipfs.js',
|
||||
type: 'text/plain'
|
||||
}
|
||||
|
||||
await bchjs.IPFS.uploadFileWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(
|
||||
err.message,
|
||||
'File should have the property \'size\' of number type'
|
||||
)
|
||||
}
|
||||
})
|
||||
it("should throw an error if 'type' property is not included", async () => {
|
||||
try {
|
||||
const file = {
|
||||
name: 'ipfs.js',
|
||||
size: 5000
|
||||
}
|
||||
|
||||
await bchjs.IPFS.uploadFileWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(
|
||||
err.message,
|
||||
'File should have the property \'type\' of string type'
|
||||
)
|
||||
}
|
||||
})
|
||||
it('should throw an error if modelId is not included', async () => {
|
||||
try {
|
||||
const file = {
|
||||
name: 'ipfs.js',
|
||||
size: 5000,
|
||||
type: 'text/plain'
|
||||
}
|
||||
await bchjs.IPFS.uploadFileWeb(file)
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(`err.message: ${err.message}`)
|
||||
assert.include(err.message, 'Must include a file model ID')
|
||||
}
|
||||
})
|
||||
|
||||
it('Should throw error if the file was not uploaded', async () => {
|
||||
try {
|
||||
const mock = {
|
||||
successful: [],
|
||||
failed: [
|
||||
{
|
||||
id: 'file id'
|
||||
}
|
||||
]
|
||||
}
|
||||
sandbox.stub(bchjs.IPFS.uppy, 'upload').resolves(mock)
|
||||
|
||||
const file = {
|
||||
name: 'ipfs.js',
|
||||
size: 5000,
|
||||
type: 'text/plain'
|
||||
}
|
||||
await bchjs.IPFS.uploadFileWeb(file, '5ec562319bfacc745e8d8a52')
|
||||
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
} catch (err) {
|
||||
// console.log(err)
|
||||
assert.include(err.message, 'The file could not be uploaded')
|
||||
}
|
||||
})
|
||||
|
||||
it('should return file object if the file is uploaded', async () => {
|
||||
try {
|
||||
sandbox.stub(bchjs.IPFS.uppy, 'upload').resolves(mockData.uploadData)
|
||||
|
||||
const file = {
|
||||
name: 'ipfs.js',
|
||||
size: 5000,
|
||||
type: 'text/plain'
|
||||
}
|
||||
const result = await bchjs.IPFS.uploadFileWeb(
|
||||
file,
|
||||
'5ec562319bfacc745e8d8a52'
|
||||
)
|
||||
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
||||
|
||||
assert.property(result, 'schemaVersion')
|
||||
assert.property(result, 'size')
|
||||
assert.property(result, 'fileId')
|
||||
assert.property(result, 'fileName')
|
||||
assert.property(result, 'fileExtension')
|
||||
} catch (err) {
|
||||
// console.log(err)
|
||||
assert.equal(true, false, 'Unexpected result')
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user