diff --git a/tests/Unit/UpdaterRemoteTest.php b/tests/Unit/UpdaterRemoteTest.php index fb50d86..a5b9a6f 100644 --- a/tests/Unit/UpdaterRemoteTest.php +++ b/tests/Unit/UpdaterRemoteTest.php @@ -25,7 +25,7 @@ class UpdaterRemoteTest extends TestCase } } - /** @test @group current */ + /** @test */ public function it_adds_roles_to_the_database() { $updater = new UpdaterFake('/test-data', 'roles', true, 's3'); @@ -79,79 +79,82 @@ class UpdaterRemoteTest extends TestCase $this->assertTrue($supervisor->is(Roles::first()->supervisor)); } +// /** +// * @test +// * @group current +// */ +// public function exception_is_thrown_if_the_directory_does_not_exists() +// { +// try { +// new UpdaterFake(null, null, true, 's3'); +// +// $this->fail('exception was thrown'); +// } catch (Exception $e) { +// $this->assertEquals('Specified sync file directory does not exist', $e->getMessage()); +// } +// } + /** @test */ - public function exception_is_thrown_if_the_directory_does_not_exists() + public function invalid_json_throws_an_exception() { try { - new UpdaterFake(null, null, true, 's3'); + $updater = new UpdaterFake('test-data/invalid-json', null, true, 's3'); + $updater->run(); $this->fail('exception was thrown'); } catch (Exception $e) { - $this->assertEquals('Specified sync file directory does not exist', $e->getMessage()); + $this->assertStringContainsString('No records or invalid JSON for', $e->getMessage()); } } -// -// /** @test */ -// public function invalid_json_throws_an_exception() -// { -// try { -// $updater = new UpdaterFake(__DIR__.'/../test-data/invalid-json'); -// $updater->run(); -// -// $this->fail('exception was thrown'); -// } catch (Exception $e) { -// $this->assertStringContainsString('No records or invalid JSON for', $e->getMessage()); -// } -// } -// -// /** @test */ -// public function the_json_must_contain_a_key_with_an_underscore() -// { -// try { -// $updater = new UpdaterFake(__DIR__.'/../test-data/no-criteria'); -// $updater->run(); -// -// $this->fail('exception was thrown'); -// } catch (Exception $e) { -// $this->assertEquals('No criteria/attributes detected', $e->getMessage()); -// } -// } -// -// /** @test */ -// public function order_of_imports_can_be_defined_in_config() -// { -// config()->set('data-sync.order', [ -// 'Supervisor', -// 'Roles', -// ]); -// -// $updater = new UpdaterFake(__DIR__.'/../test-data/ordered'); -// $updater->run(); -// -// $this->assertDatabaseHas('roles', ['slug' => 'update-student-records']); -// $this->assertDatabaseHas('supervisors', ['name' => 'CEO']); -// } -// -// /** @test */ -// public function exception_is_thrown_if_imports_are_in_incorrect_order() -// { -// config()->set('data-sync.order', [ -// 'Roles', -// 'Supervisor', -// ]); -// -// $this->expectException(ErrorUpdatingModelException::class); -// -// $updater = new UpdaterFake(__DIR__.'/../test-data/ordered'); -// $updater->run(); -// } -// -// /** @test */ -// public function it_ignores_non_json_files() -// { -// $updater = new UpdaterFake(__DIR__.'/../test-data/not-json'); -// $updater->run(); -// -// $this->assertDatabaseMissing('roles', ['slug' => 'update-student-records']); -// } + + /** @test */ + public function the_json_must_contain_a_key_with_an_underscore() + { + try { + $updater = new UpdaterFake('test-data/no-criteria', null, true, 's3'); + $updater->run(); + + $this->fail('exception was thrown'); + } catch (Exception $e) { + $this->assertEquals('No criteria/attributes detected', $e->getMessage()); + } + } + + /** @test */ + public function order_of_imports_can_be_defined_in_config() + { + config()->set('data-sync.order', [ + 'Supervisor', + 'Roles', + ]); + + $updater = new UpdaterFake('test-data/ordered', null, true, 's3'); + $updater->run(); + + $this->assertDatabaseHas('roles', ['slug' => 'update-student-records']); + $this->assertDatabaseHas('supervisors', ['name' => 'CEO']); + } + + /** @test */ + public function exception_is_thrown_if_imports_are_in_incorrect_order() + { + config()->set('data-sync.order', [ + 'Roles', + 'Supervisor', + ]); + + $this->expectException(ErrorUpdatingModelException::class); + + $updater = new UpdaterFake('test-data/ordered', null, true, 's3'); + $updater->run(); + } + + /** @test */ + public function it_ignores_non_json_files() + { + $updater = new UpdaterFake(__DIR__.'/../test-data/not-json'); + $updater->run(); + + $this->assertDatabaseMissing('roles', ['slug' => 'update-student-records']); + } }