From 23b60dc1975db38c280d8a123aff97544d1673e0 Mon Sep 17 00:00:00 2001
From: HelenHuang <LinHuang@pollex.com.tw>
Date: 星期四, 09 六月 2022 15:34:21 +0800
Subject: [PATCH] TODO#139890 FAQ 常見問題 1-文案調整

---
 PAMapp/node_modules/ua-parser-js/test/test.js |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/PAMapp/node_modules/ua-parser-js/test/test.js b/PAMapp/node_modules/ua-parser-js/test/test.js
index ad54ef4..71d1f46 100644
--- a/PAMapp/node_modules/ua-parser-js/test/test.js
+++ b/PAMapp/node_modules/ua-parser-js/test/test.js
@@ -2,6 +2,8 @@
 var safe        = require('safe-regex');
 var assert      = require('assert');
 var requirejs   = require('requirejs');
+var parseJS     = require('@babel/parser').parse;
+var traverse    = require('@babel/traverse').default;
 var UAParser    = require('./../src/ua-parser');
 var browsers    = require('./browser-test.json');
 var cpus        = require('./cpu-test.json');
@@ -137,12 +139,19 @@
 
     var regexes;
 
-    // todo: use AST-based instead of grep
-    before('Read main js file', function (done) {
-        fs.readFile('src/ua-parser.js', 'utf8', function (err, data) {
-            regexes = data.match(/(\/.+\/[ig]+)(?=[,\s\n])/g);
-            done();
+    before('Read main js file', function () {
+        var code = fs.readFileSync('src/ua-parser.js', 'utf8').toString();
+        var ast = parseJS(code, { sourceType: "script" });
+        regexes = [];
+        traverse(ast, {
+            RegExpLiteral: (path) => {
+                regexes.push(path.node.pattern);
+            }
         });
+
+        if (regexes.length === 0) {
+            throw new Error("Regexes cannot be empty!");
+        }
     });
 
     describe('Begin testing', function () {
@@ -156,4 +165,4 @@
             });
         });
     });
-})
\ No newline at end of file
+});

--
Gitblit v1.8.0