Islombe dev
68 subscribers
113 photos
26 videos
80 links
Here I share thoughts, news, memes.
Topic: IT and more :)

My website: https://islombe-dev.uz

My soc. networks:
- youtube.com/@islombe_dev
- instagram.com/islombe_dev
Download Telegram
Writing unit tests in #Nuxt can quickly get messy. You start mocking everything, dealing with flaky tests, and wondering "am I even testing this the right way?" 🫠
Over time I came up with some simple practices that keep my tests clean.
Sharing them here, maybe some of these will make your project life easier too ✌️


Mock Nuxt specifics 👍
vi.mock('#app', () => ({
useRuntimeConfig: () => ({ public: { apiBase: 'http://fake' } }),
useFetch: vi.fn().mockResolvedValue({ data: { message: 'ok' } })
}));

Without this, tests crash. Nuxt has its own injections

Isolate network 🌐
(useFetch as any).mockResolvedValue({
data: { message: 'Mocked response' },
pending: false,
error: null
});

Tests should never hit the real API

Use Pinia Testing 👩‍💻
import { createTestingPinia } from '@pinia/testing';
mount(MyComponent, { global: { plugins: [createTestingPinia()] } });

Test stores without a real backend

Put logic into composables 📁
// composables/useSum.ts
export const useSum = (a:number,b:number)=>a+b;

// useSum.spec.ts
expect(useSum(2,3)).toBe(5);

Functions are easier to test than components

Stable selectors 🫵
<!-- Button.vue -->
<button data-test="submit-btn">Send</button>

expect(wrapper.get('[data-test="submit-btn"]').text()).toBe('Send');

data-test is reliable even if CSS classes change.

Test edge cases 🤔
expect(formatMoney(0)).toBe('$0.00');

Always check empty data, errors, large values

Control async 😎
await nextTick();     
vi.useFakeTimers();

Keeps your test stable, not flaky

Mock plugins & i18n 🎭
vi.mock('vue-i18n', () => ({
useI18n: () => ({ t: (key:string)=>key })
}));

Replace t and everything just works

Keep tests small 🤏
it('adds todo', ()=>{ store.add('task'); expect(store.items.length).toBe(1); });
it('toggles todo', ()=>{ store.toggle(1); expect(store.items[0].done).toBe(true); });

One test = one idea


Also i do suggest you to keep track of you coverage and make as big as possible 👜
Please open Telegram to view this post
VIEW IN TELEGRAM
1
For those who want to master the nano. Try this command:
alias nano="vim"
3
Forwarded from Memolink
Nega Memolink kerak? 🤔

Bugun bizning barcha xotiralarimiz 📸 telefon galereyasida, 📂 Google Drive’da yoki turli ijtimoiy tarmoqlarda tarqalib ketgan. Vaqt o‘tishi bilan ular yo‘qoladi, linklar ishlamay qoladi yoki oddiygina unutiladi.

Eng qizig‘i, odamlar bir voqeani eslar ekan, uning 60% tafsilotlarini bir necha yil ichida unutadi. Demak, suratlar va videolar saqlansa ham, ular ortidagi his-tuyg‘u asta-sekin yo‘qolib boradi.

Memolink shu muammoni hal qilish uchun yaratilmoqda.
📍 Siz xotiralarni joyga bog‘lab qoldirasiz.
✨ AR kapsulalar orqali esa ularni qayta his qilish imkoniga ega bo‘lasiz.

#Memolink #Xotira #Innovatsiya #AR #FutureTech #uzbekistan #nuqta
Заметки начинающего разработчика

Войти в IT – это как начать новую игру на максимальной сложности. Квест, где куча дверей и ноль инструкций. Вот мои заметки. Думаю, многие себя узнают)

Ошибки – это не катастрофа ✍️
Красные строки в терминале? Раньше я их не читал полностью и сразу пытался исправить. Но в большинстве случаев достаточно хорошенько прочитать ошибку

Гугл(ну и LLM`ы) как второй мозг 🧠
Навык "правильно искать"(друг так на работу устроился) иногда важнее, чем "всё знать"(это нереально). Почти каждый ответ уже где-то есть – главное задать вопрос так, чтобы поисковик или LLM поняли.

Копипаст – это инструмент 🛠
Скопировал чужое решение или вставил сгенерированный код? Это нормально. Главное – разобраться, почему оно работает. Со временем твой код тоже будут копипастить другие.

Технологий слишком много 🤯
Фреймворки, библиотеки, языки… сначала хочется выучить все сразу. Но секрет простой: возьми одну технологию и сделай в ней что-то до конца и от души. Это даст уверенность.

Магия перезапуска 🧙
Иногда достаточно перезапустить сервер, почистить кеш или просто закрыть и открыть проект. Половина проблем решается "шаманством" 😂

Никто не родился с опытом 🤔
Те, кто сейчас щёлкают задачи одной рукой, когда-то тоже сидели и не понимали, почему эта кнопка не кликается...
Please open Telegram to view this post
VIEW IN TELEGRAM
522
Вот и началось

Теперь приложения начинают "подключаться" к LLM моделям

Open AI сделали APP SDK, с помощью которого можно подключить свое приложение и при общении в чате можно будет вызвать приложение.

Сейчас доступны партнерские приложения: booking, canva, coursera, figma, spotify

Мне понравился пример с фигмой, всегда хотелось на бумажке накидать диаграмы и перевести в цифровой вариант 🥹
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
А еще из имбы

Agent builder

Теперь нейрорабов-помощников можно будет собирать как конструктор :) и эти помощники могут забрать рутинные задачи: работа с почтой, создание отчетов, резюме встреч и тд

а теперь представим комбо из предыдущего поста и этих агентов. Например, написать прям в тг чат: "собери все пуллы готовые к мерджу, сделай релиз ноут и после моего апрува - релиз" 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub Contributions Analyzer

Создал небольшой скрипт, который автоматически анализирует вклад юзера в github репозиториях и генерирует красивый отчет в формате Markdown.

Что умеет
- Подсчитывает коммиты за указанный период
- Считает созданные Pull Request'ы
- Отслеживает принятые PR (merged)
- Анализирует ваши ревью кода
- Генерирует таблицу по всем репозиториям
- Сохраняет отчет в файл contributions.md

Идеально для
- Подготовки отчетов для менеджера 📁
- Анализа активности команды 📊
- Личной статистики разработчика 🤔
- Составления резюме 📝

Кому интересно, ссылка

#github #javascript #opensource #devtool
Please open Telegram to view this post
VIEW IN TELEGRAM
114
вышла новая версия чат гпт 5.2

и дали еще гайд как писать промпты для новой модели. будем тестировать сегодня)
1
Ждали первое место, но и второе место для второго хакатона - найс 🌚
Please open Telegram to view this post
VIEW IN TELEGRAM
19
меня упомянули в repost.uz ⌨️

По словам лид-разработчика Исломбека Салимова, решение, MVP которого создали за неделю, упрощает работу врачей с документацией и помогает в анализе медицинских данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
19
Подводим итог с Chat GPT

хоть где-то я топ 1% 😂

можно попробовать тут(через браузер): https://chatgpt.com/?hints=connector%3Aconnector_openai_cocoon&prompt=my+year+with+chatgpt
Увидел интересный PullRequest в популярном CSS-фреймворке Tailwind.

Он сам бесплатный, но есть платные шаблоны и готовые компоненты на основе этого фреймворка и своя поддержка. На этом их команда зарабатывает.

В пулле реализовали идею, где на отдельной странице /llm.txt будет одна большая текстовая страница всей документации, к который должны будут подключаться LLM и кодинг агенты и быстрее находить нужную информацию.

И вот в пулле авторов прямо пишет, что из-за ИИ люди и так перестали заходить к ним на сайт и брать платные решения и эту идею они не хотят сейчас принимать. Итог: Выручка просела на 80%, трафик на документацию упал на 40%, 75% из команды инженеров потеряли работу 🫡

Такие вот дела...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
понятно 😬
Please open Telegram to view this post
VIEW IN TELEGRAM
11
Наткнулся на новый домен – ГАИ

https://g.ai
1
Последние пару недель пилим интересный проект — встраиваемые виджеты. И хотел бы поделиться архитектурными решениями.

Что строим?
Два встраиваемых виджета с одним общим ядром, которое они переиспользуют

Решения
Решил вспомнить универские годы, когда все пытались делать по книжке и красиво. И вот к чему пришли.

1. Vanilla JS, без фреймворков 🌚 Зачему?
- BundleSize: 125KB
- 0 конфликтов с хостом
- Встаривается через <script>

2. Finite State Machine
Всегда одно явное глобавльное состояние у виджета.

3. Event-Driven
Компоненты общаются через события. Слабая связанность и легко тестировать

4. Также, спасибо ИИшкам, учли
- XSS защиту
- Sanitization
- Валидацию инпутов

Из минусов:
- Надо было изначально писать все на TS, чтобы много где не прописывать типы через JSDoc
- Используется long-polling(бек заставил)
- Многа строк у основных виджетов(из-за JSDoc :( )
- Заметил сложность с локализацией(пока думаю как лучше сделать)


#javascript #architecture #webdev
1👍5