These are chat archives for yiisoft/yii2/rus

10th
Oct 2017
des1roer
@des1roer
Oct 10 2017 03:56 UTC
@ASYOU99 ахахахах
des1roer
@des1roer
Oct 10 2017 04:16 UTC
как в функциональных тестах проверить что отдается файл?
Alexey Samoylov
@russianlagman
Oct 10 2017 04:17 UTC
$I->seeHttpHeader('Content-Disposition');
Punka
@Punka
Oct 10 2017 04:21 UTC

приветствую коллеги

KarmaBot
@KarmaBot
Oct 10 2017 04:21 UTC
@Punka, и тебе привет ;)
des1roer
@des1roer
Oct 10 2017 04:23 UTC
[RuntimeException] Call to undefined method tests\codeception\backend\FunctionalTester::seeHttpHeader
в функциональных seeHttpHeader не завезли
или я чего то не знаю?
Alexey Samoylov
@russianlagman
Oct 10 2017 04:25 UTC
модуль-то цепани
фреймворка
des1roer
@des1roer
Oct 10 2017 04:27 UTC
какой
Alexey Samoylov
@russianlagman
Oct 10 2017 04:31 UTC
yii2
доку-то читай
(:
des1roer
@des1roer
Oct 10 2017 04:32 UTC
class_name: FunctionalTester
modules:
enabled:
    - Asserts
    - Filesystem
    - Yii2
    - sima\tzarfixture\Module
    - PhpBrowser
    - REST
depends:
    REST: PhpBrowser
config:
    PhpBrowser:
        url: http://backend-sl.local:80
    Yii2:
        #cleanup: true # DANGER!
        configFile: '../config/backend/functional.php'
    REST:
        depends: PhpBrowser
        url: 'https://backend-sl.local/index-test.php/'
все есть
rest здесь не нужен наверно
Alexey Samoylov
@russianlagman
Oct 10 2017 04:38 UTC
пхп браузер-то не нужен
у тебя ж фреймворк модуль подцеплен
des1roer
@des1roer
Oct 10 2017 04:39 UTC

basic/web/index.php

    class_name: FunctionalTester
    modules:
        enabled:
            - Asserts
            - Filesystem
            - Yii2
            - sima\tzarfixture\Module
            - PhpBrowser
            - tests\codeception\common\_support\modules\MaterializedView
            - pastuhov\logstock\AcceptanceHelper
        config:
            PhpBrowser:
                url: http://backend-sl.local:80
            Yii2:
                #cleanup: true # DANGER!
                configFile: '../config/backend/functional.php'
            sima\tzarfixture\Module:
                fixtureFile: '/var/www/html/tests/codeception/common/fixtures/db.sql'
                fixturePath: '/var/www/html/tests/codeception/common/fixtures/data/'
    env:
        # Среда для восстановления БД из бакапа, для первого старта, самое то.
        restore:
            modules:
                config:
                    sima\tzarfixture\Module:
                        restore: true

        # Среда для изменения БД
        modify:
            modules:
                config:
                    sima\tzarfixture\Module:
                        modify: true
                        restore: true
KarmaBot
@KarmaBot
Oct 10 2017 04:39 UTC
@des1roer, у нас тут принято писать кратко и по делу. А если нужно показать длинный код, то можно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
des1roer
@des1roer
Oct 10 2017 04:39 UTC
ну я там апи зачем то подключил.
Alexey Samoylov
@russianlagman
Oct 10 2017 04:40 UTC
если подключен модуль фреймворка, то вебсервер не нужен и пхпбраузер тоже
они нужны для приемочных тестов жы
des1roer
@des1roer
Oct 10 2017 04:42 UTC
ну ок.
des1roer
@des1roer
Oct 10 2017 04:52 UTC
мне даж шторм не подсвечивает что есть метод seehttpheader
Alexey Samoylov
@russianlagman
Oct 10 2017 04:56 UTC
чет навертел ты
$I->wantTo('download');
$I->haveJwtTokenAuthorization(123);
$I->sendGET('/v1/file/1/download');
$I->seeResponseCodeIs(200);
$I->seeHttpHeader('Content-Disposition');
как часы :-)
des1roer
@des1roer
Oct 10 2017 04:59 UTC
а данные с формы шдлю
шлю
Call to undefined method tests\codeception\backend\FunctionalTester::haveJwtTokenAuthorization
ты апи тестируешь
Alexey Samoylov
@russianlagman
Oct 10 2017 05:01 UTC
@des1roer ну у меня свои хелперы же написаны
у тебя таких нет :-)
в смысле с формы?
ты тестишь upload или download?
des1roer
@des1roer
Oct 10 2017 05:08 UTC
я шлю с какого до какого и в ответ ексель получаю
а можешь haveJwtTokenAuthorization еще показать?
Alexey Samoylov
@russianlagman
Oct 10 2017 05:10 UTC
NDA :-)
des1roer
@des1roer
Oct 10 2017 05:13 UTC
жесть)))
вобщем в апи есть seeHttpHeader а в функциональных не завезли как понимаю
Alexey Samoylov
@russianlagman
Oct 10 2017 05:14 UTC
ну как не завезли
все в наличии
@des1roer или ты про REST модуль?
а ну да
@see \Codeception\Module\REST::seeHttpHeader()
des1roer
@des1roer
Oct 10 2017 05:20 UTC
пилять а как то можно его заюзать в функциональных тестах?
Alexey Samoylov
@russianlagman
Oct 10 2017 05:22 UTC
рест модуль подключи
des1roer
@des1roer
Oct 10 2017 05:23 UTC
а это вообще законно?
Alexey Samoylov
@russianlagman
Oct 10 2017 05:24 UTC
вообзе да
des1roer
@des1roer
Oct 10 2017 05:24 UTC
[yii\base\ErrorException] DOMDocument::loadXML(): Opening and ending tag mismatch: link line 9 and head in Entity, line: 31
\
он пытается как xml прочитать что ему пришло
Stas
@ASYOU99
Oct 10 2017 06:20 UTC
@des1roer ???
усем здрасте
KarmaBot
@KarmaBot
Oct 10 2017 06:21 UTC
Приветствую тебя, @ASYOU99!
Кот Олигарха
@OligarchCat_twitter
Oct 10 2017 07:39 UTC
привет двуногие!
KarmaBot
@KarmaBot
Oct 10 2017 07:39 UTC
Не узнал тебя, @OligarchCat_twitter. Богатым будешь :)
Кот Олигарха
@OligarchCat_twitter
Oct 10 2017 07:41 UTC
Скрыто под кнопкой ДОПОЛНИТЕЛЬНО при установке Амиго
Скрыто под кнопкой ДОПОЛНИТЕЛЬНО при установке Амиго
des1roer
@des1roer
Oct 10 2017 07:45 UTC
;tcnm
жесть
а вот если я хочу данные из гридвью отправить формой как быть?
данные фильтра
des1roer
@des1roer
Oct 10 2017 08:30 UTC
хей
Кот Олигарха
@OligarchCat_twitter
Oct 10 2017 08:32 UTC
@des1roer а что за форма? на той же странице?
Punka
@Punka
Oct 10 2017 08:52 UTC
тишина..
des1roer
@des1roer
Oct 10 2017 08:58 UTC
есть гридвью
с фильтрами
хочу по клику на кнопку отдавать что в фильтрах в ексель
des1roer
@des1roer
Oct 10 2017 09:21 UTC
хей
Stas
@ASYOU99
Oct 10 2017 09:40 UTC

хочу по клику на кнопку отдавать что в фильтрах в ексель

То что ты в фильтр забил или то что тебе фильттр отдал т.е. отфильтрованную таблицу же?

nolka
@nolka
Oct 10 2017 10:00 UTC
@russianlagman прием)
@russianlagman научи меня делегировать полномочия? ;D
У меня есть 2 недопиленных проекта на которые у меня нет времени
но я готов платить за их допиливание н-ную сумму денег человеку
:D
Alexey Samoylov
@russianlagman
Oct 10 2017 10:04 UTC
@nolka а че мешает?
nolka
@nolka
Oct 10 2017 10:04 UTC
где найти человека?
:D
студента какого то надо наверно
или хз
Alexey Samoylov
@russianlagman
Oct 10 2017 10:04 UTC
че за проектыта
nolka
@nolka
Oct 10 2017 10:04 UTC
н-ная сумма денег небольшая по местным меркам)
да темпсмс
Alexey Samoylov
@russianlagman
Oct 10 2017 10:04 UTC
на yii жуниора прям тут можно найти
nolka
@nolka
Oct 10 2017 10:04 UTC
банально)
и игрохостинг)
Alexey Samoylov
@russianlagman
Oct 10 2017 10:05 UTC
ну ты зарегайся например
на trello.com
создай борду с тасками на 3-4 часа
nolka
@nolka
Oct 10 2017 10:05 UTC
какой ценник адекватный щас для жуниора?
Alexey Samoylov
@russianlagman
Oct 10 2017 10:06 UTC
150-250
nolka
@nolka
Oct 10 2017 10:07 UTC
10 тыщ в месяц итого
примерно
а не, вру)
забыл на 4 умножить ;D
40
ну в целом, норм, если учесть, что у меня не будет такой полной загрузки для него
у меня в битбакете несколько ишью написаны)
там их штук 5 :)
и я уже забыл, о чем они :D
тут капец
@russianlagman я все бабулесики на темпсмс заработанные потратил на ништяки для жыпа))
50 ваттную рацейку купил, и пулевлагоударозащищенный планшет для навигации на i7 :D
Ruslan
@Ma3oBblu
Oct 10 2017 10:25 UTC

Ruslan Gilyazetdinov, [10.10.17 14:23]
подскажите как правильно чекать капчу в юнит тестах? получаю такую ошибку сейчас Invalid CAPTCHA action ID: /user/default/captcha

Ruslan Gilyazetdinov, [10.10.17 14:24]
в рулз ['verifyCode', 'captcha', 'captchaAction' => '/user/default/captcha'],

Ruslan Gilyazetdinov, [10.10.17 14:24]
в контроллере

public function actions()
{
return [
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}

des1roer
@des1roer
Oct 10 2017 11:03 UTC
хей
почему только со второго раза клик проходит?
<?php Pjax::begin(['enablePushState' => false]); ?>

<?php $form = ActiveForm::begin(); ?>
<?= Html::hiddenInput('SeoPageHistorySearch[seo_page_url]', $searchModel->seo_page_url) ?>
<?= Html::hiddenInput('SeoPageHistorySearch[seo_type_id]', $searchModel->seo_type_id) ?>
<?= Html::hiddenInput('SeoPageHistorySearch[updated_at]', $searchModel->updated_at) ?>
<?= Html::hiddenInput('submit', 1) ?>
<?= Html::submitButton('Выгрузить отчёт', ['class' => 'btn btn-primary']); ?>
<?php ActiveForm::end(); ?>
?
okyselov
@okyselov
Oct 10 2017 11:33 UTC

Привет всем, вопрос по ДИ.

  1. Определил в конфиге дефинишн, какой класс подкидывать если объект зависит от данного интерфейса:
    'container' => [
         'definitions' => [
             '\GuzzleHttp\ClientInterface' => [
                 'class' => '\Guzzle\Http\Client',
             ],
         ]
     ],
  2. Вот компонент, куда внедряется зависимость:

    use GuzzleHttp\ClientInterface;
    class MazafakaAdapter extends Component
    {
     /** @var ClientInterface */
     private $httpClient;
    
     public function __construct(ClientInterface $client, array $config = [])
     {
         parent::__construct($config);
         $this->httpClient = $client;
     }
    }
  3. Попытка создания инстанса:
    $adapter = Yii::createObject(MazafakaAdapter::className());
    Приводит к ошибке Exception 'yii\di\NotInstantiableException' with message 'Can not instantiate GuzzleHttp\ClientInterface.'

Вопрос, что я делаю не так?

KarmaBot
@KarmaBot
Oct 10 2017 11:33 UTC
@okyselov, привет, как настроение?
Alexey Samoylov
@russianlagman
Oct 10 2017 11:34 UTC
как минимум надо юзать ::class константы
а зачем тебе тут зависимость от Component вообще?
okyselov
@okyselov
Oct 10 2017 11:38 UTC
@russianlagman чтобы иишный ДИ, работал. Или он и так без наследования работать должен?
Alexey Samoylov
@russianlagman
Oct 10 2017 11:43 UTC
он и так будет работать с автовайрингом
@okyselov а че будет если контейнер напрямую позвать?
Yii::$container->get
okyselov
@okyselov
Oct 10 2017 11:46 UTC
@russianlagman Убрал наследвание от компонента, энивей, проблема осталась. Мне напрямую не надо, смысл тогда от того ДИ, я так могу и класс напрямую позвать. Или имеешь ввиду ради дебага?
Alexey Samoylov
@russianlagman
Oct 10 2017 11:47 UTC
Ээ
Yii::$container->get(MazafakaAdapter::class);
зачем напрямую-то класс звать
okyselov
@okyselov
Oct 10 2017 11:49 UTC
@russianlagman попробовал, но снова тот же эксепшен.
Alexey Samoylov
@russianlagman
Oct 10 2017 11:49 UTC
:D
а если \GuzzleHttp\ClientInterface::class => \Guzzle\Http\Client::class ?
okyselov
@okyselov
Oct 10 2017 11:53 UTC
Ага, получил чуток другой эксепшн. Слеш перед \GuzzleHttp был лишним в дефинишене, ::class это исправил.
Alexey Samoylov
@russianlagman
Oct 10 2017 11:55 UTC
я настройку контейнера через definitions не делал, хз
а ща какой эксепшн хоть?
des1roer
@des1roer
Oct 10 2017 11:56 UTC
хей
Alexey Samoylov
@russianlagman
Oct 10 2017 11:56 UTC
поди на конструктор?
des1roer
@des1roer
Oct 10 2017 11:56 UTC
а почему Yii::$app->session->getFlash('error'); дважды пишет одно и тоже?
okyselov
@okyselov
Oct 10 2017 11:56 UTC
@russianlagman ой, сорри, я нашел проблему.
НЕ тот интерфейс был в дефинишене. Нужен был \Guzzle\Http\ClientInterface
Alexey Samoylov
@russianlagman
Oct 10 2017 11:57 UTC
:D
okyselov
@okyselov
Oct 10 2017 11:57 UTC
@russianlagman Спасибо, что помогал разобраться :)
KarmaBot
@KarmaBot
Oct 10 2017 11:57 UTC
Спасибо (+1) для @russianlagman принято! Текущая карма +131.
des1roer
@des1roer
Oct 10 2017 11:59 UTC
image.png
Andrey Kushnarev
@andku83
Oct 10 2017 11:59 UTC
@des1roer а ты удалял флеш?
des1roer
@des1roer
Oct 10 2017 11:59 UTC
нет
Andrey Kushnarev
@andku83
Oct 10 2017 12:00 UTC
А во втором случае это разве не валидация формы?
des1roer
@des1roer
Oct 10 2017 12:01 UTC
да она мне как бы не нужна
и формы то нет
des1roer
@des1roer
Oct 10 2017 12:06 UTC
нужно юзать Alert::widget();
des1roer
@des1roer
Oct 10 2017 12:28 UTC
а как в codecept текущий юрл узнать?
Andrey Kushnarev
@andku83
Oct 10 2017 12:29 UTC
@des1roer гугли codecept текущий юрл
des1roer
@des1roer
Oct 10 2017 12:41 UTC
функциональные тесты умеют файлы выкачивать?
Alexey Samoylov
@russianlagman
Oct 10 2017 15:54 UTC
ага
@des1roer чтоб урл узнать надо хелпер свой писать вроде
даже просто чтоб редирект словить - надо хелпер