diff --git a/src/htmx.js b/src/htmx.js index f1c29bfd..a3de9cab 100644 --- a/src/htmx.js +++ b/src/htmx.js @@ -1323,7 +1323,7 @@ var htmx = (() => { this.__insertNodes(parentNode, target.nextSibling, fragment); } } else { - let methods = this.__extMethods.get('handle_swap') + let methods = this.__extMethods.get('handle_swap') || [] let handled = false; for (const method of methods) { let result = method(swapStyle, target, fragment, swapSpec); diff --git a/test/tests/unit/__issueRequest.js b/test/tests/unit/__issueRequest.js index 91196133..6aef41ce 100644 --- a/test/tests/unit/__issueRequest.js +++ b/test/tests/unit/__issueRequest.js @@ -258,4 +258,22 @@ describe('__issueRequest unit tests', function() { assert.isTrue(ctx.request.signal.aborted) }) + it('throws clean error for unknown swap style with no extensions', async function () { + let div = createProcessedHTML('
') + let ctx = htmx.__createRequestContext(div, new Event('click')) + + ctx.fetch = async () => ({ + status: 200, + headers: new Headers(), + text: async () => '