From 811b237bb59a15ef77023be038b5da14146acb71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borys=20=C5=BBmuda?= Date: Fri, 27 Sep 2024 07:12:11 +0200 Subject: [PATCH] feat: Added `Set::keys()` method --- src/JavaScript/Set.php | 12 ++++++++++++ tests/Unit/SetTest.php | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/JavaScript/Set.php b/src/JavaScript/Set.php index fd662b2..837f863 100644 --- a/src/JavaScript/Set.php +++ b/src/JavaScript/Set.php @@ -147,6 +147,18 @@ public function has(mixed $value): bool return in_array($value, $this->items, true); } + /** + * Returns Set keys as SetIterator. + * Alias for the values() + * @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/keys + * + * @return \Rudashi\JavaScript\SetIterator + */ + public function keys(): SetIterator + { + return $this->values(); + } + /** * @return array */ diff --git a/tests/Unit/SetTest.php b/tests/Unit/SetTest.php index 6f7e52e..d85ac54 100644 --- a/tests/Unit/SetTest.php +++ b/tests/Unit/SetTest.php @@ -378,6 +378,17 @@ ['bar', true], ]); +describe('keys', function () { + it('returns new SetIterator', function () { + $set = new Set(['foo', 'bar']); + + expect($set->keys()) + ->toBeInstanceOf(SetIterator::class) + ->current()?->toBe('foo') + ->next()?->toBe('bar'); + }); +}); + describe('values', function () { it('returns new SetIterator', function () { $set = new Set(['foo', 'bar']);