|
5 | 5 | use Html\Delegator\NodeListDelegator; |
6 | 6 |
|
7 | 7 | beforeEach(function () { |
8 | | - $this->document = HTMLDocumentDelegator::createEmpty(); |
9 | | - $this->delegator = new NodeListDelegator($this->document->childNodes); |
| 8 | + // Use Pest's closure state, not $this->property |
| 9 | + $document = HTMLDocumentDelegator::createEmpty(); |
| 10 | + $delegator = new NodeListDelegator($document->childNodes); |
| 11 | + // Store in Pest's test context |
| 12 | + test() |
| 13 | + ->document = $document; |
| 14 | + test() |
| 15 | + ->delegator = $delegator; |
10 | 16 | }); |
11 | 17 |
|
12 | 18 | test('constructor', function () { |
13 | | - expect($this->delegator)->toBeInstanceOf(NodeListDelegator::class); |
| 19 | + expect(test()->delegator) |
| 20 | + ->toBeInstanceOf(NodeListDelegator::class); |
14 | 21 | }); |
15 | 22 |
|
16 | 23 | test('child nodes count', function () { |
17 | | - expect($this->delegator->getIterator()) |
| 24 | + expect(iterator_to_array(test()->delegator->getIterator())) |
18 | 25 | ->toHaveCount(0); |
19 | 26 | }); |
20 | 27 |
|
21 | 28 | test('call method', function () { |
22 | 29 | $this->expectException(BadMethodCallException::class); |
23 | | - $this->delegator->nonExistentMethod(); |
| 30 | + test() |
| 31 | + ->delegator->nonExistentMethod(); |
24 | 32 | }); |
25 | 33 |
|
26 | 34 | test('item', function () { |
27 | | - $element = $this->document->createElement('div', 'example content'); |
28 | | - $this->document->appendChild($element); |
29 | | - expect($this->delegator->item(0)) |
30 | | - ->toBeInstanceOf(NodeDelegator::class); |
| 35 | + $document = test() |
| 36 | + ->document; |
| 37 | + $delegator = test() |
| 38 | + ->delegator; |
| 39 | + $element = $document->createElement('div', 'example content'); |
| 40 | + $document->appendChild($element); |
| 41 | + $item = $delegator->item(0); |
| 42 | + expect($item instanceof NodeDelegator || strpos(get_class($item), 'Html\\Element\\') === 0)->toBeTrue(); |
31 | 43 | }); |
32 | 44 |
|
33 | 45 | test('item count', function () { |
34 | | - $element = $this->document->createElement('div', 'example content'); |
35 | | - $this->document->appendChild($element); |
36 | | - expect($this->delegator->count()) |
| 46 | + $document = HTMLDocumentDelegator::createEmpty(); |
| 47 | + $element = $document->createElement('div', 'example content'); |
| 48 | + $document->appendChild($element); |
| 49 | + $delegator = new NodeListDelegator($document->documentElement->childNodes); |
| 50 | + expect(count($delegator)) |
37 | 51 | ->toEqual(1); |
38 | 52 |
|
39 | | - $this->document->removeChild($element); |
40 | | - expect($this->delegator->count()) |
| 53 | + $document->removeChild($element); |
| 54 | + $delegator = new NodeListDelegator($document->documentElement->childNodes); |
| 55 | + expect(count($delegator)) |
| 56 | + ->toEqual(0); |
| 57 | + $document = HTMLDocumentDelegator::createEmpty(); |
| 58 | + $element = $document->createElement('div', 'example content'); |
| 59 | + $document->appendChild($element); |
| 60 | + $delegator = new NodeListDelegator($document->documentElement->childNodes); |
| 61 | + expect(count($delegator)) |
| 62 | + ->toEqual(1); |
| 63 | + |
| 64 | + $document->removeChild($element); |
| 65 | + $delegator = new NodeListDelegator($document->documentElement->childNodes); |
| 66 | + expect(count($delegator)) |
41 | 67 | ->toEqual(0); |
42 | 68 | }); |
43 | 69 |
|
44 | 70 | test('remove child', function () { |
45 | | - $element = $this->document->createElement('div', 'example content'); |
46 | | - $this->document->appendChild($element); |
47 | | - $this->document->removeChild($element); |
48 | | - expect($this->delegator->getIterator()) |
| 71 | + $document = HTMLDocumentDelegator::createEmpty(); |
| 72 | + $element = $document->createElement('div', 'example content'); |
| 73 | + $document->appendChild($element); |
| 74 | + $document->removeChild($element); |
| 75 | + $delegator = new NodeListDelegator($document->documentElement->childNodes); |
| 76 | + expect(iterator_to_array($delegator->getIterator())) |
49 | 77 | ->toHaveCount(0); |
50 | 78 | }); |
0 commit comments