From c722e811943940b813c230d4b70f225821e2ccc0 Mon Sep 17 00:00:00 2001 From: Thomas Hickman Date: Wed, 17 Feb 2016 15:35:51 +0000 Subject: [PATCH] Create mz-tests.ts --- mz/mz-tests.ts | 241 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 mz/mz-tests.ts diff --git a/mz/mz-tests.ts b/mz/mz-tests.ts new file mode 100644 index 000000000..abcff6ac6 --- /dev/null +++ b/mz/mz-tests.ts @@ -0,0 +1,241 @@ +/// +/// +/// + + +import assert = require('assert') +import fs = require('mz/fs') + + +describe('fs', function () { + + it('.stat()', function (done) { + fs.stat(__filename).then(function (stats) { + assert.equal(typeof stats.size, 'number') + done() + }).catch(done) + }) + + it('.statSync()', function () { + var stats = fs.statSync(__filename) + assert.equal(typeof stats.size, 'number') + }) + + it('.exists()', function (done) { + fs.exists(__filename).then(function (exists) { + assert(exists) + done() + }).catch(done) + }) + + it('.existsSync()', function () { + var exists = fs.existsSync(__filename) + assert(exists) + }) + + describe('callback support', function () { + it('.stat()', function (done) { + fs.stat(__filename, function (err, stats) { + assert(!err) + assert.equal(typeof stats.size, 'number') + done() + }) + }) + + it('.exists()', function (done) { + fs.exists(__filename, function (err, exists) { + assert(!err) + assert(exists) + done() + }) + }) + }) +}) + +import cp = require('mz/child_process') +describe('child_process', function () { + + + it('.exec().then()', function (done) { + cp.exec('node --version').then(function (params) { + assert.equal(params[0].toString('utf8')[0], 'v') + done() + }) + }) + + it('.exec().catch()', function (done) { + cp.exec('lkajsdfkljalskdfjalsdf').catch(function (err) { + done() + }) + }) + + describe('callback support', function () { + it('.exec() success', function (done) { + cp.exec('node --version', function (err, stdout) { + assert.equal(stdout.toString('utf8')[0], 'v') + done() + }) + }) + + it('.exec() err', function (done) { + cp.exec('lkajsdfkljalskdfjalsdf', function (err) { + assert(err) + done() + }) + }) + }) +}) + +import crypto = require('mz/crypto') + +describe('crypto', function () { + + it('.randomBytes().then()', function (done) { + crypto.randomBytes(8).then(function (buf) { + assert.equal(buf.length, 8) + done() + }) + }) + + describe('callback support', function () { + it('.randomBytes()', function (done) { + crypto.randomBytes(8, function (err, buf) { + assert(!err) + assert.equal(buf.length, 8) + done() + }) + }) + }) +}) + +import stream = require('stream') +import readline = require('mz/readline') + +describe('readline', function () { + + + it('.question().then()', function (done) { + var input = new stream.PassThrough() + var output = new stream.PassThrough() + var rl = readline.createInterface({ input: input, output: output }) + + rl.question('a').then(function (answer) { + assert.equal(answer, 'b') + done() + }) + + assert.equal(output.read(), 'a') + input.write('b\n') + }) + + it('completer support', function (done) { + function completer (line:string) { + assert.equal(line, 'b') + return Promise.resolve([['bTESTSTRING'], line]) + } + + var input = new stream.PassThrough() + var output = new stream.PassThrough() + var bufferedOutput = '' + var rl = readline.createInterface( input, output, completer, true ) + + rl.question('a').then(function (answer: string) { + assert.equal(answer, 'bTESTSTRING') + done() + }) + + function onOutputData (data: Buffer | String) { + bufferedOutput += data.toString() + + if (bufferedOutput.match(/TESTSTRING/)) { + input.write('\n') + output.removeListener('data', onOutputData) + } + } + + output.on('data', onOutputData) + input.write('b\t') + }) + + describe('callback support', function () { + it('.question()', function (done) { + var input = new stream.PassThrough() + var output = new stream.PassThrough() + var rl = readline.createInterface({ input: input, output: output }) + + rl.question('a', function (answer) { + assert.equal(answer, 'b') + done() + }) + + assert.equal(output.read(), 'a') + input.write('b\n') + }) + + it('completer support sync', function (done) { + function completer (line: string) { + assert.equal(line, 'b') + return <[string[], string]>[['bTESTSTRING'], line] + } + + var input = new stream.PassThrough() + var output = new stream.PassThrough() + var rl = readline.createInterface(input, output, completer, true) + + rl.question('a').then(function (answer) { + assert.ok(output.read().toString().match(/TESTSTRING/)) + done() + }) + + input.write('b\t\n') + }) + + it('completer support async', function (done) { + function completer (line: string, cb: (err: any, result: [string[], string]) => void) { + assert.equal(line, 'b') + cb(null, [['bTESTSTRING'], line]) + } + + var input = new stream.PassThrough() + var output = new stream.PassThrough() + var rl = readline.createInterface(input, output, completer, true ) + + rl.question('a').then(function (answer) { + assert.ok(output.read().toString().match(/TESTSTRING/)) + done() + }) + + input.write('b\t\n') + }) + }) +}) + +import zlib = require('mz/zlib') + +describe('zlib', function () { + + it('.gzip().then().gunzip()', function (done) { + var buf = new Buffer("lol", 'utf-8'); + zlib.gzip(buf).then(function (res) { + return zlib.gunzip(res) + }).then(function (string) { + assert.equal(string, 'lol') + done() + }) + }) + + describe('callback support', function () { + it('.gzip() and .gunzip()', function (done) { + var buf = new Buffer("lol", 'utf-8'); + zlib.gzip(buf, function (err, res) { + assert(!err) + assert(Buffer.isBuffer(res)) + zlib.gunzip(res, function (err, string) { + assert(!err) + assert.equal(string, 'lol') + done() + }) + }) + }) + }) +})