Судя по коду речь идет про тестирование.
Вы описываете
callback внутри функции
beforeEach.
Callback - это функция, которая будет вызвана в какой-то момент, задуманный автором, следовательно автором же задумано, что внутрь этого "коллбэка" будет передан аргумент - еще одна функция. Вы ее назвали
done (так как, все так называют, но вместо
done, можно было написать
qwe и то же бы работало).
Resolve и reject - это названия (так же придуманные для удобства) функций, которые вы передаете в then:
beforeEach((done) => {
Todo.remove({}).then(() => {
return Todo.insertMany(todos);
}).then(resolve, reject);
});
Получается, что ваш
resolve - это первый аргумент, то есть анонимная функция, первая в
then, то есть:
() => done()
Функции
reject - здесь нет, как нет и функции
catch.
Пример, про qwe:
beforeEach((qwe) => {
Todo.remove({}).then(() => {
return Todo.insertMany(todos);
}).then(() => qwe());
});
https://learn.javascript.ru/promise