예제 #1
0
 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());
 }
예제 #2
0
 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');
 }