https://github.com/tenderpro/test-js-2017
Тестовое задание для кандидатов javascript
https://github.com/tenderpro/test-js-2017
Last synced: about 1 year ago
JSON representation
Тестовое задание для кандидатов javascript
- Host: GitHub
- URL: https://github.com/tenderpro/test-js-2017
- Owner: TenderPro
- Created: 2017-03-17T12:37:26.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-21T12:16:54.000Z (about 9 years ago)
- Last Synced: 2025-01-30T02:27:50.283Z (over 1 year ago)
- Language: JavaScript
- Size: 63.5 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# test-js-2017
## Тестовое задание № 1
Необходимо реализовать несколько функций и тесты к ним.
Файл для реализации c описанием [тут](./packages/core/src/task.js)
В качестве примера реализован [тест](./packages/core/__tests__/task/sequence.js) для функции sequence
## Тестовое задание № 2
Необходимо реализовать CRUD приложение используя React
1. Постраничная навигация
2. Добавление и редактирование в строке таблицы (Row Editing)
3. Сортировка
4. Изменение порядка колонок в таблице
5. Скроллинг только данных (шапка на месте)
6. Экспорт в файл (формат на ваше усмотрение)
7. Темы (Скины) приложения. Расположение исходников и выбор CSS препроцессора на ваше усмотрение
8. Пару тестов для React компонентов.
- В качестве хранилища воспользуйтесь localStorage.
- Место для исходников React компонентов [тут](./packages/components/src), а для тестов к ним [тут](./packages/components/__tests__)
- Для ускорения процесса разработки вы можете воспользоваться дополнительными модулями.
- Доработать и оптимизировать конфигурацию сборки.
- Использование декораторов приветствуется.
Модель данных **Person**:
- Title - Выпадающий список
- FirstName - строка
- LastName - строка
- Position - строка
- Country - Выпадающий список
- BirthDate - дата
Данные для выпадающих списков вы можете получить подключив модуль [@tpro/core/utils/enums](./packages/core/src/utils/enums.js)
```javascript
import * as Enums from '@tpro/core/utils/enums'
```
Для поля Title - воспользуйтесь Enums.person_title
Для поля Country - Enums.country
Обратите внимание, что данные функции возвращают Promise объект, а при первом вызове resolve срабатывает через 1 секунду.
### Пример желаемого результата

## Структура
└── application/
│ └── src/main.jsx - Точка входа в приложение
├── packages/
│ ├── components/ - Пакет для React компонентов
│ └── core/ - Flux, утилиты, работа с хранилищем, ...
├── config/ - папка с конфигурационными файлами для сборки
└── build.js - исполняющий файл сборки
## Тестирование
```sh
# Запуск всех тестов
npm test
```
## Сборка
```sh
# Вывод справки
node build -h
# Сборка develop версии
node build
# Сборка develop версии с отслеживанием изменений
node build -W
# Сборка production версии
node build -P
```
Тестовый сервер вы можете настроить на свое усмотрение или воспользоваться [node-static](https://github.com/cloudhead/node-static)
```sh
# Установка
$ npm install -g node-static
# Запуск
$ static _build -p 8000
serving "_build" at http://127.0.0.1:8000
```