public function createUpdateInvalid(ApiTester $I) { $I->createAndLoginClient(); $faker = $I->getFaker(); /** Normal user for Test Duplicate Username */ $I->sendPOST('api/v1/users/', ['email' => $faker->email, 'password' => $I->getPassword(), 'username' => 'duplicate', 'active' => true]); $I->assertResponseDataFields(['active' => false], 201); $invalidData = ['email' => ['', null, 'test', '<script></script>', '"alert12"', "test@i,ua"], 'username' => ['', null, '1', str_repeat('2', 33), 'duplicate'], 'password' => ['', null, '1fa', 'withoutdigit']]; foreach ($invalidData as $key => $data) { $normalUserData = ['email' => $faker->email, 'password' => $I->getPassword(), 'username' => $faker->firstName]; foreach ($data as $item) { $normalUserData[$key] = $item; $I->sendPOST('api/v1/users/', $normalUserData); $I->seeResponseCodeIs(422); $I->seeResponseContains('"error":"validation"'); $I->seeResponseContains($key); } } $I->createAndLoginUser(true); foreach ($invalidData as $key => $data) { foreach ($data as $item) { $I->sendPUT('api/v1/users/current', [$key => $item]); $I->seeResponseCodeIs(422); $I->seeResponseContains('"error":"validation"'); $I->seeResponseContains($key); } } # change password $data = [['password' => $I->getPassword()], ['password' => $I->getPassword(), 'current_password' => 'invalid password']]; foreach ($data as $item) { $I->sendPUT('api/v1/users/current', $item); $I->seeResponseCodeIs(422); $I->seeResponseContains('current_password'); } }
public function update(ApiTester $I) { $user = $I->createAndLoginUser(); $I->createProjectAndSetHeader(); $I->createTable(); $I->sendGET('api/v1/admin/tables'); $I->assertListTable(); $id = $I->getResponseFields()->data[0]->_id; $data = $I->getTableData(); $data['title'] = 'Updated title'; $data['description'] = 'Updated description'; $data['fields'] = [["key" => 'test_key', "title" => 'Test key', "source" => "request", "type" => 'string', 'preset' => null]]; $data['variants'] = [['default_decision' => 'Decline', 'rules' => [['_id' => $I->getMongoId(), 'than' => 'Approve', 'description' => 'New rule', 'conditions' => [['_id' => $I->getMongoId(), 'field_key' => 'test_key', 'condition' => '$eq', 'value' => 'test']]]]]]; $I->sendPUT('api/v1/admin/tables/' . $id, $data); $I->assertTable(); $I->assertResponseDataFields($data); $I->sendGET('api/v1/admin/changelog/tables'); $I->assertResponseDataFields(['author' => $user->username]); }
public function updateMetaOk(ApiTester $I) { $I->createAndLoginUser(); $I->createProjectAndSetHeader(); $I->createTable($I->getTableShortData()); $decision = $I->makeDecision($I->getResponseFields()->data->_id, ['bool' => true, 'numeric' => 123, 'string' => 'Yes']); $data = ['ok' => '0981723qweasdzxcTYUGHJBNBNM!@#$%^&*()_+{}|":>?<~`', 'json' => '{"type":{"num":123}}']; $I->sendPUT("api/v1/admin/decisions/{$decision->_id}/meta", ['meta' => $data]); $I->assertTableDecisionsForAdmin(); $I->assertResponseDataFields(['meta' => $data]); $data = ['updated' => '0981723qweasdzxcTYUGHJBNBNM!@#$%^&*()_+{}|":>?<~`']; $I->sendPUT("api/v1/admin/decisions/{$decision->_id}/meta", ['meta' => $data]); $I->assertTableDecisionsForAdmin(); $I->assertResponseDataFields(['meta' => $data]); $I->cantSeeResponseJsonMatchesJsonPath('$.data.meta.ok'); $I->cantSeeResponseJsonMatchesJsonPath('$.data.meta.json'); }