parent
fb1f4344b3
commit
d6083e4327
@ -1,2 +1,3 @@ |
|||||||
bin |
bin |
||||||
|
lib |
||||||
*.md |
*.md |
||||||
|
|||||||
@ -0,0 +1,109 @@ |
|||||||
|
const assert = require('assert'); |
||||||
|
const fs = require('fs'); |
||||||
|
const path = require('path'); |
||||||
|
const TelegramBot = require('..'); |
||||||
|
|
||||||
|
const paths = { |
||||||
|
audio: path.join(__dirname, "data/audio.mp3"), |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
// TODO:Enable all other tests
|
||||||
|
describe.only('sending files', function sendfileSuite() { |
||||||
|
const bot = new TelegramBot("token"); |
||||||
|
|
||||||
|
before(function beforeSuite() { |
||||||
|
process.env.NTBA_FIX_350 = 1; |
||||||
|
}); |
||||||
|
after(function afterSuite() { |
||||||
|
delete process.env.NTBA_FIX_350; |
||||||
|
}); |
||||||
|
|
||||||
|
describe('using fileOptions', function sendfileOptionsSuite() { |
||||||
|
const type = 'file'; |
||||||
|
const stream = fs.createReadStream(paths.audio); |
||||||
|
const nonPathStream = fs.createReadStream(paths.audio); |
||||||
|
const buffer = fs.readFileSync(paths.audio); |
||||||
|
const nonDetectableBuffer = fs.readFileSync(__filename); |
||||||
|
const filepath = paths.audio; |
||||||
|
const fileId = 'fileId'; |
||||||
|
const files = [stream, nonPathStream, buffer, nonDetectableBuffer, filepath]; |
||||||
|
|
||||||
|
delete nonPathStream.path; |
||||||
|
|
||||||
|
describe('filename', function filenameSuite() { |
||||||
|
it('(1) fileOptions.filename', function test() { |
||||||
|
const filename = 'custom-filename'; |
||||||
|
files.forEach((file) => { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, file, { filename }); |
||||||
|
assert.equal(data.options.filename, filename); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(2) Stream#path', function test() { |
||||||
|
if (!stream.path) { |
||||||
|
return this.skip('Stream#path unsupported'); |
||||||
|
} |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, stream); |
||||||
|
assert.equal(data.options.filename, path.basename(paths.audio)); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(3) filepath', function test() { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, filepath); |
||||||
|
assert.equal(data.options.filename, path.basename(paths.audio)); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(4) final default', function test() { |
||||||
|
[nonPathStream, buffer, nonDetectableBuffer].forEach((file) => { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, file); |
||||||
|
assert.equal(data.options.filename, 'filename'); |
||||||
|
}); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
describe('contentType', function contentTypeSuite() { |
||||||
|
it('(1) fileOpts.contentType', function test() { |
||||||
|
const contentType = 'application/custom-type'; |
||||||
|
files.forEach((file) => { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, file, { contentType }); |
||||||
|
assert.equal(data.options.contentType, contentType); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(2) Stream#path', function test() { |
||||||
|
if (!stream.path) { |
||||||
|
return this.skip('Stream#path unsupported'); |
||||||
|
} |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, stream); |
||||||
|
assert.equal(data.options.contentType, 'audio/mpeg'); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(3) Buffer file-type', function test() { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, buffer); |
||||||
|
assert.equal(data.options.contentType, 'audio/mpeg'); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(4) filepath', function test() { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, filepath); |
||||||
|
assert.equal(data.options.contentType, 'audio/mpeg'); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(5) fileOptions.filename', function test() { |
||||||
|
[nonPathStream, nonDetectableBuffer].forEach((file) => { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, file, { |
||||||
|
filename: 'image.gif', |
||||||
|
}); |
||||||
|
assert.equal(data.options.contentType, 'image/gif'); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
it('(6) Final default', function test() { |
||||||
|
[nonPathStream, nonDetectableBuffer].forEach((file) => { |
||||||
|
const [{ [type]: data }] = bot._formatSendData(type, file); |
||||||
|
assert.equal(data.options.contentType, 'application/octet-stream'); |
||||||
|
}); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
}); |
||||||
|
}); |
||||||
Loading…
Reference in new issue