• Как правильно тестировать роуты во VueJS?

    @FullStackAlex
    Веб-разработчик, электрик, кочевник
    Потерял вчера целый день пытаясь решить эту казалось бы простую проблему.
    Но как в итоге выяснил Vue-Test-Utils не предусматривает изменения во vue-router:

    Dealing with Routing
    Since routing by definition has to do with the overall structure of the application and involves multiple components, it is best tested via integration or end-to-end tests. For individual components that rely on vue-router features, you can mock them using the techniques mentioned above.


    Поэтому для подобной задачи нужно использовать E2E testing tools как Puppeteer, TestCafe и Cyprus. Или же (что я сейчас пока лишь пробую, но может сегодня более подробно описать смогу) не использовать vue-test-utils wrapper а использовать реальную Vue rendered app.

    Update:
    Ок, решил проблему.
    Vue-Test-Utils нельзя использовать из-за createLocalVue() и mount(), так как обе функции не дают возможность использовать для создания Vue инстанции "Full UMD bundler" .

    Vue-Test-Utils сделан для максимальной изоляции компоненты. Хотя добавить FULL UMD поддержку казалось бы не такая уж и большая задача, но увы.

    Поэтому нужно как уже и писал обходится без vue-test-utils. А так как я ненавижу Facebook - я принципиально не использую Jest, Yarn, React итп (по крайней мере в личных проектах), а использую Mocha + Chai + Sinon + jsdom, но принцип один и тот же, да и синтаксис практически такой же:

    import chai from "chai";
    const expect = chai.expect;
    const should = chai.should();
    
    import App from '~/testing-router-without-wrapper/App.vue';
    
    import VueRouter from 'vue-router';
    import router from '~/testing-router-without-wrapper/router.js';
    
    //https://github.com/vuejs/vue-router/issues/713
    import Vue from "vue/dist/vue.js";
    Vue.use(VueRouter);
    
    //jsdom создаст HTML документ но так как я в своём app ссылаюсь везде на #app в функции app container, нужно создать соответсвующий элемент:
    let element = document.createElement("div");
    element.id = "app";
    const myApp = new Vue({
        el: element,
        router,
        render: h => h(App),
        components: {App},
    });
    
    describe('Testing App.vue with Route 1', () => {
    
        it('Title of Home component is true', () => {
            console.log( "myApp.$el.innerHTML", myApp.$el.innerHTML );
            expect(myApp.$el.innerHTML.includes('<h1 id="title">Home Title</h1>')).to.be.true;
        });
    
        it('Pushing Route1 and checking title of Route1 component is true', done => {
            myApp.$router.push('/route1');
            setTimeout(()=>{
                console.log( "myApp.$el.innerHTML", myApp.$el.innerHTML );
                expect(myApp.$el.innerHTML.includes('<h1 id="title">Route 1 Title</h1>')).to.be.true;
                done();
            },1000);
    
        });
    });
    Ответ написан
    Комментировать
  • Как исправить: There are multiple modules with names that only differ in casing?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. Переименуйте все индексные файлы вindex.jsв нижнем регистре.
    2. Соблюдайте регистр в путях при импортах.
    Ответ написан
    7 комментариев
  • Как из массива объектов вытащить имена, собрать отдельный массив уникальных имен и отсортировать в алфавитном порядке?

    contraomnes
    @contraomnes
    Frontend developer
    const arr = [{name: 'Сергей'}, {name: 'Анна'}, {name: 'Сергей'}, {name: 'Пётр'}, {name: 'Антон'}];
    const result = [...new Set(arr.map(n => n.name))].sort((a, b) => a.localeCompare(b));
    
    console.log(result);
    Ответ написан
  • Пропуск в Network (инструменты разработчика). Куда уходит?

    @boivlad
    У Вас что-то загружается в этот промежуток времени, выделите эту область времени выше и увидите те файлы, которые Вам нужны.
    Ответ написан
    Комментировать
  • Как мне php сайт конвертировать в android приложение (apk file)?

    @Araya
    Меняешь формат php на apk и все, приложение из воздуха появится
    Ответ написан
    7 комментариев
  • Как сделать такое на vue?

    @deliro
    Перефразирую твой вопрос, чтобы тебе самому было понятно:
    Что лучше использовать для ремонта: пилу или молоток?
    Ответ написан
    Комментировать
  • Можно ли на javascript или его фреймворков можно считать директории сайта, на котором работает скрипт?

    razumkov2015
    @razumkov2015
    "Программист" https://vk.com/cgs_game
    Работать с директориями на сервере может только серверный язык. PHP вам в помощь, можете с помощью него читать содержимое скриптов, кодировать его, отдавать клиенту и там уже декодировать и запускать.
    JS это чисто клиентский язык, который вообще не имеет понятия, что происходит на сервере и уж тем более не имеет доступа. Если конечно речь идет не о Node.js
    Ответ написан
    1 комментарий
  • Как визуально повернуть игральную CSS-карту?

    bubandos
    @bubandos
    bash'у, javascript'ую, php'лю, css'аю, html'каю
    Используйте position:absolute; transform:rotateY; и backface-visibility: hidden;
    https://jsfiddle.net/anton4ept/9xoo08ew/
    Ответ написан
    Комментировать
  • Как с Google Fonts достать формат WOFF2?

    SagePtr
    @SagePtr
    Еда - это святое
    В программе, которой пытаешься скачать, прописать User-Agent своего браузера.
    Ответ написан
    2 комментария
  • Определить какой скрипт работает при клике на элемент(форма)?

    @AntohaRomaha
    FreeBSD, PHP, MySQL, Jquery
    Есть еще Visual Event для хрома расширение
    Ответ написан
    5 комментариев
  • Определить какой скрипт работает при клике на элемент(форма)?

    @Stepanya
    Chrome devTools->Sources->Event Listener Breakpoints
    или ещё как вариант вариант
    Ответ написан
    Комментировать
  • Что изучать верстальщику и в каком порядке?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Пишу по порядку, как реально нужно.

    Поиск по Тостеру, так как схожие вопросы задаются минимум 2-3 раза в неделю.

    адаптива не знаю, он у нас и не требуется

    Печально уже за такую компанию, которая сейчас пренебрегает адаптивной версткой.
    Хотя, быть может (моя последняя надежда) у вас есть мобильная версия сайта.

    про бэм и препроцессоры что-то где-то читал, но тоже не знаю

    Да не используйте, и не учите. Просто теряете время и ресурсы на написание код (или говнокода, не знаю).
    Просто без препроцессоров всё делается долго и нудно, и тяжело структурировать, копаясь в одном файле.
    А так, можете не учить, если хочется заморачиваться %)

    js так же, на уровне скопировал-вставил

    Выскажу свое личное мнение.
    Верстальщик без JS, это не верстальщик, это контент-менеджер со знанием HTML.
    Любой сайт от лендинга до портала требует JS, правда часто делают хрень, напичканную плагинами, даже если требуется 2-3 строки кода. Не нужно подключать плагины там, где оно не нужно и обратная сторона вопроса, не нужно писать свой код там, где можно использовать готовый плагин (не изобретать велосипед).
    Но если есть время, желание и умение, можно писать и свои плагины, для тренировки.

    Верстаем display:table/table-cell

    Тут буду краток. $^*(&%#(*$%($(%&*(*$#&*%($#%)($)^_*()#&@%$ - вырезано цензурой.

    не в одну компанию с такими навыками меня явно не возьмут

    Что мешает заниматься самообразованием?
    Благо живем в 21 веке, в интернете есть любые учебники, тесты, курсы, да чего только нет.
    На крайний случай, можно напросить в подмастерья к какому-нибудь верстальщику (знаю, часто требуются).
    Да, работать придется в основном "за еду", но будет опытный наставник, который скажет - так норм, а так не надо.

    надо изучать с бустрапа сразу

    Не зная принципов адаптивной верстки, использовать Бутстрап не получится.
    Так что в ьлюбом случае, понимание адаптивной верстки должно быть, при том "чистое", чтобы можно было разобраться не только в Бутстрапе. Фреймворков для адаптивной верстки еще очень и очень много.

    советы от товарищей по цеху, как развивались они и откуда брали инфу

    90% опыта приходит вместе с практикой.
    Можно прочитать 100 учебников и не понять, что это за свойство, а можно один раз применить и сразу понять.
    Нужно просто много и усердно практиковаться. Качать любые шаблоны PSD, верстать, верстать, верстать.
    Сначала простые, трехколоночные сайты. Потом посложнее и закончить каким-нибудь паралаксом.
    Но повторюсь, для обучения минимум плагинов.

    есть ли смысл работать в маленьком городе

    Не знаю, что за город у вас. Скажу про свой. Население около 900тыс.
    В городе порядка 5 топовых студий по созданию сайтов, не считая 2-3 десятков мелких контор.
    Также есть топовые IT компании, но про них говорить не буду, с таким багажом тебя туда пока не возьмут.
    Так что в любом городе есть смысл работать.
    Да и фриланс, удаленную работу никто не отменял.

    вопрос только Москва или оставаться в городе

    Что в Москве, медом намазано? Или думаешь, так вакансий больше?
    Нифига не больше, потому как и желающих поработать там не меньше чем вакансий.

    В общем, резюмируя всё вышесказанное - учись, развивайся.

    Удачи.

    ЗЫ: Недавно на Хабре опубликовали ссылку.
    webmasters.teamdev.com
    Чесслово, проникся. Отличный мануал.
    Ответ написан
    17 комментариев
  • Спрайты или svg иконки?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    SVG спрайты через symbol
    Ответ написан
    3 комментария
  • Процедурное создание уникальных аватарок?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Генерация такого рода картинок основана на том, что от имени / почты / еще какого-то параметра считается хэш, а потом на основании него по какому-то (зачастую подобранному на глазок) алгоритму уже генерируется картинка. На javascript это удобно делать на canvas, благо его можно легко крутить и симметричную картинку сделать не сложно. Останется только при необходимости сохранить ее в файл, но этот вопрос легко гуглится.

    Для иллюстрации приложу свой пример на codepen (писался на скорую руку, так что за ***код не пинайте)
    Ответ написан
    4 комментария
  • Как узнать по id яндекс метрики владельца?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Собственно в поддержке есть готовый сценарий как перенести счетчик на другой логин не имея доступа к самому счетчику:
    feedback2.yandex.ru/metrika/transfer/noaccess
    После переноса у Вас будет полный доступ, включая и старую историю
    Ответ написан
    1 комментарий
  • Как правильно организовать структуру файлов и папок FrontEnd-а веб-проекта?

    @7rulnik
    Посмотрите на генераторы yeoman.io
    Ответ написан
    Комментировать