Olá Gustavo, tudo bem?
O que você está enfrentando é uma limitação do jsdom. O jsdom é uma biblioteca que simula um ambiente de navegador no Node.js, mas ele não implementa todas as funcionalidades que um navegador real possui. 
No caso do input do tipo file, o jsdom não tem a capacidade de simular a seleção de arquivos, pois isso envolve interações com o sistema de arquivos do usuário, algo que um ambiente de servidor como o Node.js não pode fazer por questões de segurança.
Quando você usa document.querySelector('#file').files, está tentando acessar a propriedade files de um elemento de input do tipo file, que em um navegador real seria preenchida quando o usuário seleciona um arquivo. No jsdom, essa propriedade permanece vazia porque não há interação real do usuário para selecionar um arquivo.
Se você precisa testar essa funcionalidade, uma abordagem seria simular a seleção de arquivos nos seus testes. Você pode criar um objeto File manualmente e atribuí-lo ao elemento de input no seu código de teste. Aqui está um exemplo de como você pode fazer isso:
const { JSDOM } = require('jsdom');
const fs = require('fs');
JSDOM.fromFile('templates/editar.handlebars').then((dom) => {
  const { document } = dom.window;
  const fileInput = document.querySelector('#file');
  // Simulando um arquivo
  const file = new dom.window.File(['conteúdo do arquivo'], 'arquivo.txt', {
    type: 'text/plain',
  });
  // Atribuindo o arquivo simulado ao input
  Object.defineProperty(fileInput, 'files', {
    value: [file],
  });
  console.log(fileInput.files[0].name); // Deve imprimir 'arquivo.txt'
});
Dessa forma, você pode testar a lógica do seu código sem precisar de uma interação real com o sistema de arquivos do usuário.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.