public function checkDecisionAccess(ApiTester $I) { $user = $I->createAndLoginUser(); $I->createProjectAndSetHeader(); $table = $I->createTable($I->getShortTableDataMatchingTypeAll()); $decisions = ['points' => 15, 'request' => ['string' => 'Invalid', 'numeric' => 1, 'bool' => false]]; $data = $I->makeDecision($table->_id, $decisions['request'], 'scoring'); $I->sendGET('api/v1/admin/decisions'); $I->assertContains($data->_id, $I->grabResponse()); $second_user = $I->createUser(true); $I->loginUser($second_user); $I->createProject(true); $I->sendGET('api/v1/admin/decisions'); $I->assertNotContains($data->_id, $I->grabResponse()); $I->loginUser($user); $I->sendPOST('api/v1/projects/users', ['user_id' => $second_user->_id, 'role' => 'manager', 'scope' => ['tables_create', 'tables_view', 'tables_update', 'decisions_view']]); $I->loginUser($second_user); $I->sendGET('api/v1/admin/decisions'); $I->assertContains($data->_id, $I->grabResponse()); }
public function decisionType(ApiTester $I) { $I->createAndLoginUser(); $I->createProjectAndSetHeader(); # alpha_num $tableData = $I->getTableShortData(); $tableData['decision_type'] = 'alpha_num'; $I->createTable($tableData); # numeric invalid $tableData['decision_type'] = 'numeric'; $tableData['variants'][0]['than'] = 'string'; $tableData['variants'][0]['default_decision'] = 'string'; $I->sendPOST('api/v1/admin/tables', $tableData); $I->seeResponseCodeIs(422); $response = $I->getResponseFields()->data; $I->assertTrue(array_key_exists('variants.0.default_decision', $response)); $I->assertTrue(array_key_exists('variants.0.rules.0.than', $response)); $I->assertTrue(array_key_exists('variants.0.rules.1.than', $response)); # numeric valid $tableData['variants'][0]['default_decision'] = 1; $tableData['variants'][0]['rules'][0]['than'] = -202; $tableData['variants'][0]['rules'][1]['than'] = 123.34; $I->createTable($tableData); # json $tableData = $I->getTableShortData(); $tableData['decision_type'] = 'json'; $tableData['variants'][0]['default_decision'] = '{}'; $tableData['variants'][0]['rules'][0]['than'] = '{"ok":true}'; $tableData['variants'][0]['rules'][1]['than'] = '[123,456]'; $I->createTable($tableData); # invalid json $tableData['variants'][0]['rules'][1]['than'] = '{invalid json}'; $I->sendPOST('api/v1/admin/tables', $tableData); $I->seeResponseCodeIs(422); $response = $I->getResponseFields()->data; $I->assertTrue(array_key_exists('variants.0.rules.1.than', $response)); # for scoring decision_type is always numeric $tableData = $I->getShortTableDataMatchingTypeAll(); $tableData['decision_type'] = 'json'; $I->sendPOST('api/v1/admin/tables', $tableData); $I->seeResponseCodeIs(422); $I->seeResponseContains('decision_type'); }