Skip to content

Commit 8128415

Browse files
committed
Add tests
1 parent 8443338 commit 8128415

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

tests/Integration/MessagesTest.php

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,60 @@ function folder(): Folder
134134
fn (MessageQuery $query) => $query->withBody(),
135135
fn (MessageQuery $query) => $query->withFlags(),
136136
fn (MessageQuery $query) => $query->withHeaders(),
137+
fn (MessageQuery $query) => $query->withSize(),
137138
]);
138139

140+
test('get with size', function () {
141+
$folder = folder();
142+
143+
$uid = $folder->messages()->append(
144+
new DraftMessage(
145+
146+
147+
subject: 'Test Subject',
148+
text: 'hello world',
149+
),
150+
);
151+
152+
// Fetch without size - should be null
153+
$messagesWithoutSize = $folder->messages()->get();
154+
expect($messagesWithoutSize->first()->size())->toBeNull();
155+
156+
// Fetch with size - should have a value
157+
$messagesWithSize = $folder->messages()->withSize()->get();
158+
$message = $messagesWithSize->first();
159+
160+
expect($message->size())->toBeInt();
161+
expect($message->size())->toBeGreaterThan(0);
162+
expect($message->uid())->toBe($uid);
163+
});
164+
165+
test('size reflects actual message size', function () {
166+
$folder = folder();
167+
168+
$shortMessage = new DraftMessage(
169+
170+
text: 'short',
171+
);
172+
173+
$longMessage = new DraftMessage(
174+
175+
text: str_repeat('This is a longer message with more content. ', 100),
176+
);
177+
178+
$uid1 = $folder->messages()->append($shortMessage);
179+
$uid2 = $folder->messages()->append($longMessage);
180+
181+
$messages = $folder->messages()->withSize()->get();
182+
183+
$short = $messages->find($uid1);
184+
$long = $messages->find($uid2);
185+
186+
expect($short->size())->toBeInt();
187+
expect($long->size())->toBeInt();
188+
expect($long->size())->toBeGreaterThan($short->size());
189+
});
190+
139191
test('append', function () {
140192
$folder = folder();
141193

tests/Unit/FileMessageTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,3 +481,18 @@
481481
// Different content
482482
expect($message1->is($message3))->toBeFalse();
483483
});
484+
485+
test('it can determine size from contents', function () {
486+
$contents = <<<'EOT'
487+
From: "John Doe" <[email protected]>
488+
Subject: Test Subject
489+
Date: Wed, 19 Feb 2025 12:34:56 -0500
490+
Content-Type: text/plain; charset="UTF-8"
491+
492+
Test content
493+
EOT;
494+
495+
$message = new FileMessage($contents);
496+
497+
expect($message->size())->toBe(strlen($contents));
498+
});

tests/Unit/Testing/FakeMessageTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,15 @@
118118
expect($message->isFlagged())->toBeFalse();
119119
expect($message->flags())->toBeEmpty();
120120
});
121+
122+
test('it can get size when set', function () {
123+
$message = new FakeMessage(1, [], 'Test content', 1024);
124+
125+
expect($message->size())->toBe(1024);
126+
});
127+
128+
test('it returns size from contents when size is not set', function () {
129+
$message = new FakeMessage(1, [], 'Test content');
130+
131+
expect($message->size())->toBe(strlen('Test content'));
132+
});

0 commit comments

Comments
 (0)