HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: 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,
Upload Files
File: /var/www/ai-notam/node_modules/@ljharb/through/test/end.js
'use strict';

var test = require('tape');
var through = require('../');

// must emit end before close.

test('end before close', function (t) {
	t.plan(4);

	var ts = through();
	var ended = false;
	var closed = false;

	ts.on('end', function () {
		t.ok(!closed);
		ended = true;
	});
	ts.on('close', function () {
		t.ok(ended);
		closed = true;
	});

	ts.write(1);
	ts.write(2);
	ts.write(3);
	ts.end();

	t.ok(ended);
	t.ok(closed);

	t.end();
});

test('end only once', function (t) {
	t.plan(4);

	var ts = through();
	var ended = false;

	ts.on('end', function () {
		t.equal(ended, false);
		ended = true;
	});

	ts.queue(null);
	ts.queue(null);
	ts.queue(null);

	ts.resume();

	t.equal(ended, true, 'is ended');

	ts.end();
	t.equal(ended, true, 'is still ended after end()');

	ts.end();
	t.equal(ended, true, 'is still ended after end() 2x');

	t.end();
});

test('end with value', function (t) {
	var ts = through(null, null, { autoDestroy: false });

	var results = [];
	ts.on('data', function (data) {
		results.push(data);
	});

	ts.queue(123);
	ts.queue(456);

	ts.end('end');

	t.deepEqual(results, [123, 456, 'end']);

	t.end();
});