Tendo problemas para descobrir como postar um formulário usando jsdom e jquery. Isso é possível?
var form = '
';O que foi dito acima não funciona para mim, deveria ou estou fazendo algo errado?
ainda não, não há ações padrão no momento.
Provavelmente, isso é muito mais fácil de implementar agora que implementei o algoritmo de dados de formulário (em FormData-impl.js). No entanto, a navegação após o envio do formulário ainda não funcionaria.
Após o envio do formulário, como ler o corpo da resposta? Por exemplo, resourceLoader não acionou nada após um formulário enviado em um iframe.
O envio de formulários não está implementado no momento, portanto, não é possível.
Alguma mudança com isso?
Parece que o envio do formulário está parcialmente implementado. Ele despacha um HTMLEvent, mas não oferece suporte ao método de envio.
Reprodução mínima
Como um teste Mocha + Chai:
import {JSDOM} from 'jsdom'
import {assert} from 'chai'
import sinon from 'sinon'
describe('JSDOM Form', () => {
it('submit form with button', () => {
const dom = new JSDOM(`
<form id="my-form">
<button type="submit" id="submit-button">Submit Button</button>
</form>
`, {})
const listener = sinon.stub()
dom.window.document.getElementById('my-form').addEventListener('submit', listener)
dom.window.document.getElementById('submit-button').click()
assert.isTrue(listener.called)
})
})
O que é esperado?
Envie trabalhos sem erros.
O que acontece?
O teste é bem-sucedido, mas retorna este erro:
Erro: Não implementado: HTMLFormElement.prototype.submit
Comentários muito úteis
Parece que o envio do formulário está parcialmente implementado. Ele despacha um HTMLEvent, mas não oferece suporte ao método de envio.
Reprodução mínima
Como um teste Mocha + Chai:
O que é esperado?
Envie trabalhos sem erros.
O que acontece?
O teste é bem-sucedido, mas retorna este erro: