transfer-sh
Version:
Node.js CLI tool for easy file sharing using Transfer.sh
38 lines (34 loc) • 1.49 kB
JavaScript
var test = require('tape')
var fs = require('fs')
var got = require('got')
var Transfer = require('../index')
var concat = require('concat-stream')
var PassThrough = require('stream').PassThrough()
var filePath = './package.json'
var testFile = fs.readFileSync(filePath)
test('File transfer', function (t) {
t.plan(3)
new Transfer(filePath).upload().then(function (url) {
console.log('Uploaded done, url:', url)
t.equal(typeof url, 'string', 'Returned url is a string')
t.ok(url.match(/https:\/\/transfer.sh\/\S{3,}/), 'Url matches transfer.sh')
got.get(url).then(function (res) {
t.equal(res.body, testFile.toString(), 'Uploaded file matches the local one')
})
}).catch(console.error)
})
test('Encrypted file transfer', function (t) {
t.plan(4)
new Transfer(filePath, { password: 's3cr3t' }).upload().then(function (url) {
console.log('Uploaded done, url:', url)
t.equal(typeof url, 'string', 'Returned url is a string')
t.ok(url.match(/https:\/\/transfer.sh\/\S{3,}/), 'Url matches transfer.sh')
got.get(url).then(function (res) {
t.notEqual(res.body, testFile.toString(), 'Uploaded file do not matches unencrypted local one')
new Transfer(PassThrough, { password: 's3cr3t' }).decrypt(concat(function (decrypted) {
t.equal(decrypted.toString(), testFile.toString(), 'File decrypted successfully')
})).catch(console.error)
PassThrough.end(Buffer.from(res.body))
})
}).catch(console.error)
})