@htmlacademy/courses-task-checks
v1.1.97
Published
courses-task-checks ===================
Readme
courses-task-checks
Модуль экспортирует функцию createTaskChecker() и объект Logger.
Использование createTaskChecker()
Функция createTaskChecker() принимает один параметр, объект с ключами:
bin, содержит объект{compare: '/usr/bin/compare'}, где значение ключаcompareуказывает на расположение утилиты командной строкиcomparechecks, содержит объект с ключами:baseDir— каталог в котором будут расположены закешированные данныеstoreFileName— как правило, содержит значениеresult.json, имя файла, куда будет сохранён результатcacheFileName— как правило, содержит значениеcache.json, имя файла-меткиbaseUrl— базовый url для вычисления адресов картинок в испытанияхlogCliDir— каталог, в котором будут сохраняться логи серверных проверок. Если значение не передано, будет использоваться./log/cli
debug— по умолчанию имеет значениеLogger.ERROR, управляет тем, что будет выводиться в лог. Чтобы изменить это значение, нужно проимпортировать объектLogger
Функция возвращает другую функцию, которая принимает на вход два параметра.
Первый параметр — объект с ключами:
type— тип задания (html-css,html-css-challengeи т.д.)solutionOnly— используется для случаев, когда нужно получить только картинку с образцом для испытанияcode— код, приходящий от клиента. Это объект, имеющий ключиhtml,css,jsиsvg(от одного до трёх) со строковыми значениями (еслиsolutionOnlyимеет значениеtrue, не нужен)goals— состояние целей, полученные с клиента. Для каждой цели приходит объект с ключомstatusи одним из значений:created,solvedилиanswered(еслиsolutionOnlyимеет значениеtrue, не нужен)solution— код решения задания. Присутствует не во всех типах заданий, может бытьhtmlилиjsкодомlocation— объект, который может быть передан из запускающей программы. Может содержать ключи:dir— каталог, в котором будут сохраняться файлыresultJson— путь к файлу, в который будет сохраняться результат (если файл не указан, предполагается, что сохранять его на диск не нужно)cacheJson— путь к файлу, в который будет сохраняться отметка о запуске проверкиbaseUrl— базовый путь, начиная от которого будут сохраняться картинки для испытанийurl— url, по которому можно будет получить результат
В случае, если ключ location не передан, каталог для сохранения данных вычисляется на основе checks.baseDir и md5-суммы полученного кода. В этом случае считается, что файлы result.json и cache.json нужно сохранять.
В случае, если ключ solutionOnly имеет значение true, достаточно передать type (или task.type) — тип задания и solution.
Второй параметр — колбэк, в который передаётся два параметра:
- Первый — текст ошибки, если она случилась
- Второй — результат проверки
