Skip to content

Commit

Permalink
Add tests for terms & globals too
Browse files Browse the repository at this point in the history
  • Loading branch information
duncanmcclean committed Jan 31, 2025
1 parent a403b8a commit 69d0d39
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 8 deletions.
4 changes: 1 addition & 3 deletions src/UpdateScripts/ConvertDatesToUtc.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,7 @@ public function update()

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

if ($item->isDirty()) {
$item->saveQuietly();
}
$item->saveQuietly();
});
}

Expand Down
37 changes: 32 additions & 5 deletions tests/UpdateScripts/ConvertDatesToUtcTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@

use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Test;
use Statamic\Facades\Blueprint;
use Statamic\Facades\Collection;
use Statamic\Facades\Entry;
use Statamic\Facades\Fieldset;
use Statamic\Facades\GlobalSet;
use Statamic\Facades\Taxonomy;
use Statamic\Facades\Term;
use Statamic\Facades\User;
use Statamic\UpdateScripts\ConvertDatesToUtc;
Expand Down Expand Up @@ -56,7 +58,6 @@ public function it_converts_date_fields_in_entries(string $fieldHandle, array $f
date_default_timezone_set('America/New_York');

$collection = tap(Collection::make('articles'))->save();

$collection->entryBlueprint()->setContents(['fields' => [$field]])->save();

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

#[Test]
#[DataProvider('dateFieldsProvider')]
public function it_converts_entry_date_field_in_terms()
public function it_converts_date_fields_in_terms(string $fieldHandle, array $field, $original, $expected)
{
$this->markTestIncomplete();
config()->set('app.timezone', 'America/New_York'); // -05:00
date_default_timezone_set('America/New_York');

$taxonomy = tap(Taxonomy::make('tags'))->save();
$taxonomy->termBlueprint()->setContents(['fields' => [$field]])->save();

$term = Term::make()->taxonomy('tags')->data([$fieldHandle => $original]);
$term->save();

$this->runUpdateScript(ConvertDatesToUtc::class);

$this->assertEquals($expected, $term->fresh()->get($fieldHandle));
}

#[Test]
#[DataProvider('dateFieldsProvider')]
public function it_converts_entry_date_field_in_globals()
public function it_converts_date_fields_in_globals(string $fieldHandle, array $field, $original, $expected)
{
$this->markTestIncomplete();
config()->set('app.timezone', 'America/New_York'); // -05:00
date_default_timezone_set('America/New_York');

$globalSet = tap(GlobalSet::make('settings'))->save();
$globalSet->addLocalization(
$globalSet->makeLocalization('en')->data([$fieldHandle => $original])
);
$globalSet->save();

Blueprint::make('settings')->setNamespace('globals')->setContents(['fields' => [$field]])->save();

$this->runUpdateScript(ConvertDatesToUtc::class);

$globalSet = GlobalSet::find('settings');

$this->assertEquals($expected, $globalSet->inDefaultSite()->get($fieldHandle));
}

#[Test]
Expand Down

0 comments on commit 69d0d39

Please # to comment.