These are chat archives for yiisoft/yii2/rus

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

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

KarmaBot
@KarmaBot
Oct 10 2017 04:21
@Punka, и тебе привет ;)
des1roer
@des1roer
Oct 10 2017 04:23
[RuntimeException] Call to undefined method tests\codeception\backend\FunctionalTester::seeHttpHeader
в функциональных seeHttpHeader не завезли
или я чего то не знаю?
Alexey Samoylov
@russianlagman
Oct 10 2017 04:25
модуль-то цепани
фреймворка
des1roer
@des1roer
Oct 10 2017 04:27
какой
Alexey Samoylov
@russianlagman
Oct 10 2017 04:31
yii2
доку-то читай
(:
des1roer
@des1roer
Oct 10 2017 04:32
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
пхп браузер-то не нужен
у тебя ж фреймворк модуль подцеплен
des1roer
@des1roer
Oct 10 2017 04:39

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
@des1roer, у нас тут принято писать кратко и по делу. А если нужно показать длинный код, то можно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
des1roer
@des1roer
Oct 10 2017 04:39
ну я там апи зачем то подключил.
Alexey Samoylov
@russianlagman
Oct 10 2017 04:40
если подключен модуль фреймворка, то вебсервер не нужен и пхпбраузер тоже
они нужны для приемочных тестов жы
des1roer
@des1roer
Oct 10 2017 04:42
ну ок.
des1roer
@des1roer
Oct 10 2017 04:52
мне даж шторм не подсвечивает что есть метод seehttpheader
Alexey Samoylov
@russianlagman
Oct 10 2017 04:56
чет навертел ты
$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
а данные с формы шдлю
шлю
Call to undefined method tests\codeception\backend\FunctionalTester::haveJwtTokenAuthorization
ты апи тестируешь
Alexey Samoylov
@russianlagman
Oct 10 2017 05:01
@des1roer ну у меня свои хелперы же написаны
у тебя таких нет :-)
в смысле с формы?
ты тестишь upload или download?
des1roer
@des1roer
Oct 10 2017 05:08
я шлю с какого до какого и в ответ ексель получаю
а можешь haveJwtTokenAuthorization еще показать?
Alexey Samoylov
@russianlagman
Oct 10 2017 05:10
NDA :-)
des1roer
@des1roer
Oct 10 2017 05:13
жесть)))
вобщем в апи есть seeHttpHeader а в функциональных не завезли как понимаю
Alexey Samoylov
@russianlagman
Oct 10 2017 05:14
ну как не завезли
все в наличии
@des1roer или ты про REST модуль?
а ну да
@see \Codeception\Module\REST::seeHttpHeader()
des1roer
@des1roer
Oct 10 2017 05:20
пилять а как то можно его заюзать в функциональных тестах?
Alexey Samoylov
@russianlagman
Oct 10 2017 05:22
рест модуль подключи
des1roer
@des1roer
Oct 10 2017 05:23
а это вообще законно?
Alexey Samoylov
@russianlagman
Oct 10 2017 05:24
вообзе да
des1roer
@des1roer
Oct 10 2017 05:24
[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
@des1roer ???
усем здрасте
KarmaBot
@KarmaBot
Oct 10 2017 06:21
Приветствую тебя, @ASYOU99!
Кот Олигарха
@OligarchCat_twitter
Oct 10 2017 07:39
привет двуногие!
KarmaBot
@KarmaBot
Oct 10 2017 07:39
Не узнал тебя, @OligarchCat_twitter. Богатым будешь :)
Кот Олигарха
@OligarchCat_twitter
Oct 10 2017 07:41
Скрыто под кнопкой ДОПОЛНИТЕЛЬНО при установке Амиго
Скрыто под кнопкой ДОПОЛНИТЕЛЬНО при установке Амиго
des1roer
@des1roer
Oct 10 2017 07:45
;tcnm
жесть
а вот если я хочу данные из гридвью отправить формой как быть?
данные фильтра
des1roer
@des1roer
Oct 10 2017 08:30
хей
Кот Олигарха
@OligarchCat_twitter
Oct 10 2017 08:32
@des1roer а что за форма? на той же странице?
Punka
@Punka
Oct 10 2017 08:52
тишина..
des1roer
@des1roer
Oct 10 2017 08:58
есть гридвью
с фильтрами
хочу по клику на кнопку отдавать что в фильтрах в ексель
des1roer
@des1roer
Oct 10 2017 09:21
хей
Stas
@ASYOU99
Oct 10 2017 09:40

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

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

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

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
хей
почему только со второго раза клик проходит?
<?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

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

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