mirror of
				https://github.com/actions/setup-node.git
				synced 2025-10-26 07:16:44 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			992 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			992 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var pump = require('./index')
 | |
| 
 | |
| var rs = require('fs').createReadStream('/dev/random')
 | |
| var ws = require('fs').createWriteStream('/dev/null')
 | |
| 
 | |
| var toHex = function () {
 | |
|   var reverse = new (require('stream').Transform)()
 | |
| 
 | |
|   reverse._transform = function (chunk, enc, callback) {
 | |
|     reverse.push(chunk.toString('hex'))
 | |
|     callback()
 | |
|   }
 | |
| 
 | |
|   return reverse
 | |
| }
 | |
| 
 | |
| var wsClosed = false
 | |
| var rsClosed = false
 | |
| var callbackCalled = false
 | |
| 
 | |
| var check = function () {
 | |
|   if (wsClosed && rsClosed && callbackCalled) {
 | |
|     console.log('test-node.js passes')
 | |
|     clearTimeout(timeout)
 | |
|   }
 | |
| }
 | |
| 
 | |
| ws.on('close', function () {
 | |
|   wsClosed = true
 | |
|   check()
 | |
| })
 | |
| 
 | |
| rs.on('close', function () {
 | |
|   rsClosed = true
 | |
|   check()
 | |
| })
 | |
| 
 | |
| var res = pump(rs, toHex(), toHex(), toHex(), ws, function () {
 | |
|   callbackCalled = true
 | |
|   check()
 | |
| })
 | |
| 
 | |
| if (res !== ws) {
 | |
|   throw new Error('should return last stream')
 | |
| }
 | |
| 
 | |
| setTimeout(function () {
 | |
|   rs.destroy()
 | |
| }, 1000)
 | |
| 
 | |
| var timeout = setTimeout(function () {
 | |
|   throw new Error('timeout')
 | |
| }, 5000)
 |