| /*--------------------------------------------------------- |
| * Copyright 2022 The Go Authors. All rights reserved. |
| * Licensed under the MIT License. See LICENSE in the project root for license information. |
| *--------------------------------------------------------*/ |
| |
| /** |
| * Escapes the subtest target name for the given test and subtest names. |
| * |
| * This function generates a name that matches a specific test by following Go |
| * regexp rules for `go test -run` argument. Specifically it escapes slashes, |
| * replaces whitespaces with underscores and wraps everything else with literal |
| * escape sequences. |
| * |
| * @param testFuncName Name of the parent test function, e.g. "TestTask" |
| * @param subTestName Name of the subtest, e.g. "GET /path/:id" |
| */ |
| export function escapeSubTestName(testFuncName: string, subTestName: string): string { |
| return `${testFuncName}/${subTestName}` |
| .replace(/\s/g, '_') |
| .split('/') |
| .map((part) => `\\Q${part}\\E`, '') |
| .join('$/^'); |
| } |