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/design.system/node_modules/map-or-similar/tests/foreach.js
var Similar = require('../src/similar');

describe("Foreach with one entry", () => {
	var similar = new Similar(),
		entry = { key: 'stringkey', val: 'stringval' };

	similar.list.push(entry);
	similar.size = 1;

	it("iterates keys", () => {
		similar.forEach((val, key) => {
			expect(key).toEqual(entry.key);
		});
	});

	it("iterates vals", () => {
		similar.forEach((val, key) => {
			expect(val).toEqual(entry.val);
		});
	});
});

describe("Foreach with NaN entries", () => {
	var similar = new Similar(),
		entries = [
			{ key: NaN, val: 'stringval' },
			{ key: undefined, val: { b: 2 } },
			{ key: NaN, val: null },
			{ key: [NaN, 6, '%', { l: 'x'}], val: ['_', 4, { a: 1 }] }
		],
		i = 0;

	entries.forEach(entry => similar.list.push(entry));
	similar.size = entries.length;

	it("iterates keys", () => {
		i = 0;
		similar.forEach((val, key) => {
			expect(key).toEqual(entries[i].key);
			i++;
		});
	});

	it("iterates vals", () => {
		i = 0;
		similar.forEach((val, key) => {
			expect(val).toEqual(entries[i].val);
			i++;
		});
	});
});

describe("Foreach with multiple complex entries", () => {
	var similar = new Similar(),
		entries = [
			{ key: 'stringkey', val: 'stringval' },
			{ key: { a: 1 }, val: { b: 2 } },
			{ key: undefined, val: null },
			{ key: ['a', 6, '%', { l: 'x'}], val: ['_', 4, { a: 1 }] }
		],
		i = 0;

	entries.forEach(entry => similar.list.push(entry));
	similar.size = entries.length;

	it("iterates keys", () => {
		i = 0;
		similar.forEach((val, key) => {
			expect(key).toEqual(entries[i].key);
			i++;
		});
	});

	it("iterates vals", () => {
		i = 0;
		similar.forEach((val, key) => {
			expect(val).toEqual(entries[i].val);
			i++;
		});
	});
});