I have REST Api and would like to test it using Codeception Rest ApiGuy http://codeception.com/docs/10-WebServices
I installed it:
$ php codecept.phar generate:suite api ApiGuy
Configured \www\frontend\tests\api.suite.yml
class_name: ApiGuy
modules:
enabled: [PhpBrowser, REST, ApiHelper, Db]
config:
PhpBrowser:
url: http://mysite/
REST:
url: http://mysite/api/
Yii2:
configFile: 'tests/api/_config.php'
Db:
dsn: 'mysql:host=localhost;dbname=yii2_advanced_api'
user: 'root'
password: ''
dump: ''
Run build command.
Then created config files:
\www\frontend\tests\api\_config.php
<?php
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../config/main.php'),
require(__DIR__ . '/../../config/main-local.php'),
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../_config.php'),
[
'components' => [
'db' => [
'dsn' => 'mysql:host=localhost;dbname=yii2_advanced_api',
],
],
]
);
\www\frontend\tests\api\_bootstrap.php
<?php
new yii\web\Application(require(__DIR__ . '/_config.php'));
Now when I write in test something like:
User::deleteAll(['email'=>$email]);
It works with the "yii2_advanced_api" DB.
But when I run:
$I->sendPOST('users', array('password' => '123123', 'email' => 'davert@codeception.com'));
$I->seeResponseCodeIs(201);
It creates user in my main DB not in "yii2_advanced_api".
How I can change so it works with "yii2_advanced_api" instead?