cleanup(); $this->homepageDataController = $this->diContainer->get(HomepageDataController::class); } public function testItFetchesBasicData(): void { $data = $this->homepageDataController->getPageData(); expect($data)->notEmpty(); expect($data['task_list_dismissed'])->false(); expect($data['product_discovery_dismissed'])->false(); expect($data['task_list_status'])->array(); expect($data['task_list_status'])->notEmpty(); expect($data['woo_customers_count'])->int(); expect($data['subscribers_count'])->int(); } public function testItFetchesSenderTaskListStatus(): void { $settings = $this->diContainer->get(SettingsController::class); $settings->set('sender', null); $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status']; expect($taskListStatus['senderSet'])->false(); $settings->set('sender.address', 'test@email.com'); $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status']; expect($taskListStatus['senderSet'])->false(); $settings->set('sender.name', 'John Doe'); $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status']; expect($taskListStatus['senderSet'])->true(); } public function testItDoesntFetchTaskListStatusWhenTaskListDismissed(): void { $settings = $this->diContainer->get(SettingsController::class); $settings->set('homepage.task_list_dismissed', true); $data = $this->homepageDataController->getPageData(); expect($data['task_list_status'])->null(); } public function testItFetchesSubscribersAddedTaskListStatus(): void { $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status']; expect($taskListStatus['subscribersAdded'])->false(); $form = (new Form())->create(); $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status']; expect($taskListStatus['subscribersAdded'])->true(); $this->entityManager->remove($form); $this->entityManager->flush($form); $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status']; expect($taskListStatus['subscribersAdded'])->false(); for ($x = 0; $x <= 11; $x++) { (new Subscriber())->withStatus(SubscriberEntity::STATUS_SUBSCRIBED)->create(); } $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status']; expect($taskListStatus['subscribersAdded'])->true(); } private function cleanup(): void { $this->truncateEntity(SettingEntity::class); $this->truncateEntity(SubscriberEntity::class); $this->truncateEntity(FormEntity::class); } }