From 60071f2e8cf26b88e67383ab2506b32ea17463d2 Mon Sep 17 00:00:00 2001 From: klaasman Date: Mon, 22 Mar 2021 12:16:56 +0100 Subject: [PATCH 1/3] Fix detection of anchor click events inside svg --- packages/next/client/link.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/next/client/link.tsx b/packages/next/client/link.tsx index d3d018a79d79a79..d761f1a5c44aaa0 100644 --- a/packages/next/client/link.tsx +++ b/packages/next/client/link.tsx @@ -86,7 +86,10 @@ function linkClicked( ): void { const { nodeName } = e.currentTarget - if (nodeName === 'A' && (isModifiedEvent(e) || !isLocalURL(href))) { + // anchors inside an svg have a lowercase nodeName + const isAnchorNodeName = nodeName.toUpperCase() === 'A' + + if (isAnchorNodeName && (isModifiedEvent(e) || !isLocalURL(href))) { // ignore click for browser’s default behavior return } From 3117964490f017652745c9812ab469c25851d729 Mon Sep 17 00:00:00 2001 From: klaasman Date: Wed, 24 Mar 2021 12:22:18 +0100 Subject: [PATCH 2/3] Write integration test --- package.json | 1 + .../client-navigation/pages/nav/index.js | 13 +++++++-- .../client-navigation/test/index.test.js | 29 ++++++++++++++++--- test/lib/next-webdriver.d.ts | 4 ++- test/lib/wd-chain.js | 13 +++++++-- yarn.lock | 5 ++++ 6 files changed, 56 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 591aa3760456a53..54a48960c904767 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "@types/fs-extra": "8.1.0", "@types/http-proxy": "1.17.3", "@types/jest": "24.0.13", + "@types/selenium-webdriver": "4.0.11", "@types/string-hash": "1.1.1", "@typescript-eslint/eslint-plugin": "2.17.0", "@typescript-eslint/parser": "2.17.0", diff --git a/test/integration/client-navigation/pages/nav/index.js b/test/integration/client-navigation/pages/nav/index.js index 7326eaf577e0a55..b2c42dd5db46d7c 100644 --- a/test/integration/client-navigation/pages/nav/index.js +++ b/test/integration/client-navigation/pages/nav/index.js @@ -78,14 +78,23 @@ export default class extends Component { - A element with onClick + An element with onClick - A element with target + An element with target + + + + + An element in SVG + + + +