Вы засовываете в Promise.all пустой массив, все push'и выполняются после того, как отрабатывает object.map (search - она же асинхронная, да?). Надо при обходе object возвращать промис, который должен резолвиться в коллбеке функции search. Как-то так:
const statusArray = object.map(item => {
const opts = {
maxResults: 5,
key: users[2].token,
};
return new Promise((resolve, reject) => {
search(item.title, opts, (err, videos) => {
if (err) {
throw err;
}
item.youtubeId.new = videos[0].id;
item.videos = videos;
resolve(ArticleController.addArticle(item));
});
});
});