Skip to content

Commit 69d0d39

Browse files
committed
Add tests for terms & globals too
1 parent a403b8a commit 69d0d39

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

src/UpdateScripts/ConvertDatesToUtc.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ public function update()
3333

3434
$this->recursivelyUpdateFields($item, $fields);
3535

36-
if ($item->isDirty()) {
37-
$item->saveQuietly();
38-
}
36+
$item->saveQuietly();
3937
});
4038
}
4139

tests/UpdateScripts/ConvertDatesToUtcTest.php

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44

55
use PHPUnit\Framework\Attributes\DataProvider;
66
use PHPUnit\Framework\Attributes\Test;
7+
use Statamic\Facades\Blueprint;
78
use Statamic\Facades\Collection;
89
use Statamic\Facades\Entry;
910
use Statamic\Facades\Fieldset;
1011
use Statamic\Facades\GlobalSet;
12+
use Statamic\Facades\Taxonomy;
1113
use Statamic\Facades\Term;
1214
use Statamic\Facades\User;
1315
use Statamic\UpdateScripts\ConvertDatesToUtc;
@@ -56,7 +58,6 @@ public function it_converts_date_fields_in_entries(string $fieldHandle, array $f
5658
date_default_timezone_set('America/New_York');
5759

5860
$collection = tap(Collection::make('articles'))->save();
59-
6061
$collection->entryBlueprint()->setContents(['fields' => [$field]])->save();
6162

6263
$entry = Entry::make()->collection('articles')->data([$fieldHandle => $original]);
@@ -93,16 +94,42 @@ public function it_converts_entry_date_field_in_entries()
9394

9495
#[Test]
9596
#[DataProvider('dateFieldsProvider')]
96-
public function it_converts_entry_date_field_in_terms()
97+
public function it_converts_date_fields_in_terms(string $fieldHandle, array $field, $original, $expected)
9798
{
98-
$this->markTestIncomplete();
99+
config()->set('app.timezone', 'America/New_York'); // -05:00
100+
date_default_timezone_set('America/New_York');
101+
102+
$taxonomy = tap(Taxonomy::make('tags'))->save();
103+
$taxonomy->termBlueprint()->setContents(['fields' => [$field]])->save();
104+
105+
$term = Term::make()->taxonomy('tags')->data([$fieldHandle => $original]);
106+
$term->save();
107+
108+
$this->runUpdateScript(ConvertDatesToUtc::class);
109+
110+
$this->assertEquals($expected, $term->fresh()->get($fieldHandle));
99111
}
100112

101113
#[Test]
102114
#[DataProvider('dateFieldsProvider')]
103-
public function it_converts_entry_date_field_in_globals()
115+
public function it_converts_date_fields_in_globals(string $fieldHandle, array $field, $original, $expected)
104116
{
105-
$this->markTestIncomplete();
117+
config()->set('app.timezone', 'America/New_York'); // -05:00
118+
date_default_timezone_set('America/New_York');
119+
120+
$globalSet = tap(GlobalSet::make('settings'))->save();
121+
$globalSet->addLocalization(
122+
$globalSet->makeLocalization('en')->data([$fieldHandle => $original])
123+
);
124+
$globalSet->save();
125+
126+
Blueprint::make('settings')->setNamespace('globals')->setContents(['fields' => [$field]])->save();
127+
128+
$this->runUpdateScript(ConvertDatesToUtc::class);
129+
130+
$globalSet = GlobalSet::find('settings');
131+
132+
$this->assertEquals($expected, $globalSet->inDefaultSite()->get($fieldHandle));
106133
}
107134

108135
#[Test]

0 commit comments

Comments
 (0)