99use Terraformers \KeysForCache \Tests \Mocks \Models \CaredBelongsToModel ;
1010use Terraformers \KeysForCache \Tests \Mocks \Models \CaredHasManyModel ;
1111use Terraformers \KeysForCache \Tests \Mocks \Models \CaredHasOneModel ;
12+ use Terraformers \KeysForCache \Tests \Mocks \Models \CaredHasOneNonVersionedModel ;
1213use Terraformers \KeysForCache \Tests \Mocks \Models \CaredManyManyModel ;
1314use Terraformers \KeysForCache \Tests \Mocks \Models \CaredThroughModel ;
1415use Terraformers \KeysForCache \Tests \Mocks \Models \PolymorphicCaredHasManyModel ;
@@ -30,6 +31,7 @@ class CaresTest extends SapphireTest
3031 CaredBelongsToModel::class,
3132 CaredHasManyModel::class,
3233 CaredHasOneModel::class,
34+ CaredHasOneNonVersionedModel::class,
3335 CaredManyManyModel::class,
3436 CaredThroughModel::class,
3537 PolymorphicCaredHasOneModel::class,
@@ -120,6 +122,34 @@ public function testCaresHasOne(): void
120122 $ this ->assertNotEquals ($ originalKey , $ newKey );
121123 }
122124
125+ public function testCaresHasOneNonVersioned (): void
126+ {
127+ // Updates are processed as part of scaffold, so we need to flush before we kick off
128+ ProcessedUpdatesService::singleton ()->flush ();
129+
130+ $ page = $ this ->objFromFixture (CaresPage::class, 'page1 ' );
131+ $ model = $ this ->objFromFixture (CaredHasOneNonVersionedModel::class, 'model1 ' );
132+
133+ // Check that we're set up correctly
134+ $ this ->assertEquals (CaredHasOneNonVersionedModel::class, $ model ->ClassName );
135+ $ this ->assertEquals ($ page ->CaredHasOneNonVersionedModelID , $ model ->ID );
136+
137+ $ originalKey = $ page ->getCacheKey ();
138+
139+ $ this ->assertNotNull ($ originalKey );
140+ $ this ->assertNotEmpty ($ originalKey );
141+
142+ // Begin changes
143+ $ model ->forceChange ();
144+ $ model ->write ();
145+
146+ $ newKey = $ page ->getCacheKey ();
147+
148+ $ this ->assertNotNull ($ newKey );
149+ $ this ->assertNotEmpty ($ newKey );
150+ $ this ->assertNotEquals ($ originalKey , $ newKey );
151+ }
152+
123153 public function testPolymorphicCaresHasOne (): void
124154 {
125155 // Updates are processed as part of scaffold, so we need to flush before we kick off
0 commit comments