From 0a9da493f52a175b5b3f6f7bf7a07da6c33f6862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BB=B2=E5=8D=B0?= Date: Mon, 4 Mar 2019 19:54:40 +0800 Subject: [PATCH 1/2] use jest --- package.json | 3 ++- test/loader.test.js | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 test/loader.test.js diff --git a/package.json b/package.json index 055b3b0..09b1809 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "license": "MIT", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "jest" }, "repository": { "type": "git", @@ -20,6 +20,7 @@ "loader-utils": "^1.1.0" }, "devDependencies": { + "jest": "^24.1.0", "webpack": "^2.2.1" } } diff --git a/test/loader.test.js b/test/loader.test.js new file mode 100644 index 0000000..06cad67 --- /dev/null +++ b/test/loader.test.js @@ -0,0 +1,24 @@ +const originLoader = require('../src/loader') + +const baseLoaderContext = { + cacheable: () => { }, +} +const normalLoader = originLoader.bind({ + ...baseLoaderContext, + query: '?prefix=false', +}) + +const prefixLoader = originLoader.bind({ + ...baseLoaderContext, + query: '?prefix=true', +}) + +test('替换该替换的标签', () => { + expect(normalLoader('')).toBe('') + expect(prefixLoader('')).toBe('
') +}) + +test('不替换该不替换的标签', () => { + expect(normalLoader('')).toBe('') + expect(prefixLoader('')).toBe('') +}) \ No newline at end of file From ef856e1e42a348b8a204fdbac4aed3c69fc137e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BB=B2=E5=8D=B0?= Date: Mon, 4 Mar 2019 19:57:44 +0800 Subject: [PATCH 2/2] fix: fix incorrect replace --- src/loader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loader.js b/src/loader.js index 053720f..5c42618 100644 --- a/src/loader.js +++ b/src/loader.js @@ -5,7 +5,7 @@ const { tag, prefixTag } = require('./tag-map'); function replaceTag(source, tagMap) { Object.keys(tagMap).forEach(i => { - source = source.replace(new RegExp(`<${i}(?!-)`, 'g'), `<${tagMap[i]}`) + source = source.replace(new RegExp(`<${i}(?![-a-zA-Z])`, 'g'), `<${tagMap[i]}`) .replace(new RegExp(`<\/${i}>`, 'g'), `<\/${tagMap[i]}>`); }) return source;