Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Знакомство с Typescript #3

Closed
15 tasks done
TorinAsakura opened this issue May 16, 2023 · 4 comments
Closed
15 tasks done

Знакомство с Typescript #3

TorinAsakura opened this issue May 16, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@TorinAsakura
Copy link
Owner

TorinAsakura commented May 16, 2023

С чем связан запрос на фичу?

Ознакомиться с азами работы с языками программирования на примере TypeScript, научиться покрывать простые кейсы по автоматизации задач с помощью ЯП и выполнить задание

Расскажите как вы это себе видите

План

  • Переменные и типы данных
  • Структуры данных
  • Условия
  • Циклы
  • Функции
  • Работа с ошибками
  • База Advanced JS API (методы массивов)

Задание

Необходимо реализовать простой механизм авторизации. Должны быть удовлетворены следующие требования:

  • Должны присутствовать функции для регистрации:
  • login(username, password) - вход
  • logout() - выход
  • register(username, password) - регистрация
  • whoami() - получение авторизованного на данный момент пользователя (сессии)
  • При регистрации должна быть проверка: логин должен быть не короче 5 символов, пароль должен быть не короче 6. Если условие не выполняется - выбрасывать ошибку
  • Должна быть возможность хранить креды (credentials) для нескольких пользователей
  • При попытке сделать логаут без активной сессии - должна выбрасываться ошибка
  • При попытке сделать whoami без активной сессии - выбрасывать ошибку
  • При удачном вызове whoami в консоли должен быть вывод логина пользователя, который авторизован в данный момент
  • При попытке сделать регистрацию/логин в момент, когда уже есть активная сессия - выбрасывать ошибку
  • Все данные должны быть типизированы: аргументы функций, используемые переменные, возвращаемые функциями значения

Требования к обработке ошибок:

Ошибки (и код в целом) не должны содержать символов кириллицы, при этом в некоторых ошибках должны использоваться шаблонные строки. Пример:

User with login Dassfgfd not found

Password for user Johnathan is incorrect

Требования к оформлению задания

Задание должно быть выполнено в отдельной ветке. К этой ветке должен быть создан pull request. Если pull request еще не готов к мержу в мастер - он должен быть помечен как draft. Код должен удовлетворять проверкам lint и typecheck (yarn lint, yarn typecheck)

Приложите пример реализаций

No response

@jumpeebunee
Copy link
Collaborator

При входе в аккаунт нужно искать пользователя в credentials или нужно просто вывести, что пользователь залогинился без каких-либо проверок?

@TorinAsakura
Copy link
Owner Author

При входе в аккаунт нужно искать пользователя в credentials или нужно просто вывести, что пользователь залогинился без каких-либо проверок?

Конечно искать

@jumpeebunee
Copy link
Collaborator

Скоуп
Запуск проверок

Описание
Не проходит проверка Lint у файлов TS. На обычном JS все проходит, а в TS выкидывает ошибку.

Запуск

yarn install
yarn lint

Логи

  Error: No matching configuration found for /home/jumpeebunee/jumpeebunee.github.io/auth/scripts/types.ts.

@Nelfimov
Copy link

Надо понизить версии eslint до следующих:

  • eslint: 8.18
  • @types/eslint: 8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants