From c8f0071c4f5336dfe0efc5d3c218ab49f2401264 Mon Sep 17 00:00:00 2001 From: Elena Vilchik Date: Wed, 18 Dec 2019 17:10:10 +0100 Subject: Rely on NodeJS API of Stylelint to execute CSS rules (#221) --- sonar-css-plugin/src/test/resources/.DS_Store | Bin 8196 -> 0 bytes .../src/test/resources/bundle/.DS_Store | Bin 6148 -> 0 bytes .../src/test/resources/bundle/invalid-zip-file.zip | 0 .../src/test/resources/bundle/test-bundle.zip | Bin 185 -> 0 bytes .../src/test/resources/bundle/test-css-bundle.zip | Bin 0 -> 575 bytes .../src/test/resources/executables/mockError.js | 2 - .../src/test/resources/executables/mockExit.js | 5 -- .../test/resources/executables/mockStylelint.js | 19 ------ .../test/resources/executables/mockSyntaxError.js | 19 ------ .../src/test/resources/executables/mockThrow.js | 3 - .../test/resources/executables/mockUnknownRule.js | 19 ------ .../test/resources/executables/oldNodeVersion.js | 1 - .../resources/mock-start-server/startServer.js | 70 +++++++++++++++++++++ .../src/test/resources/mock-start-server/throw.js | 3 + 14 files changed, 73 insertions(+), 68 deletions(-) delete mode 100644 sonar-css-plugin/src/test/resources/.DS_Store delete mode 100644 sonar-css-plugin/src/test/resources/bundle/.DS_Store create mode 100644 sonar-css-plugin/src/test/resources/bundle/invalid-zip-file.zip delete mode 100644 sonar-css-plugin/src/test/resources/bundle/test-bundle.zip create mode 100644 sonar-css-plugin/src/test/resources/bundle/test-css-bundle.zip delete mode 100644 sonar-css-plugin/src/test/resources/executables/mockError.js delete mode 100644 sonar-css-plugin/src/test/resources/executables/mockExit.js delete mode 100644 sonar-css-plugin/src/test/resources/executables/mockStylelint.js delete mode 100644 sonar-css-plugin/src/test/resources/executables/mockSyntaxError.js delete mode 100644 sonar-css-plugin/src/test/resources/executables/mockThrow.js delete mode 100644 sonar-css-plugin/src/test/resources/executables/mockUnknownRule.js delete mode 100644 sonar-css-plugin/src/test/resources/executables/oldNodeVersion.js create mode 100644 sonar-css-plugin/src/test/resources/mock-start-server/startServer.js create mode 100644 sonar-css-plugin/src/test/resources/mock-start-server/throw.js (limited to 'sonar-css-plugin/src/test/resources') diff --git a/sonar-css-plugin/src/test/resources/.DS_Store b/sonar-css-plugin/src/test/resources/.DS_Store deleted file mode 100644 index 63066fe..0000000 Binary files a/sonar-css-plugin/src/test/resources/.DS_Store and /dev/null differ diff --git a/sonar-css-plugin/src/test/resources/bundle/.DS_Store b/sonar-css-plugin/src/test/resources/bundle/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/sonar-css-plugin/src/test/resources/bundle/.DS_Store and /dev/null differ diff --git a/sonar-css-plugin/src/test/resources/bundle/invalid-zip-file.zip b/sonar-css-plugin/src/test/resources/bundle/invalid-zip-file.zip new file mode 100644 index 0000000..e69de29 diff --git a/sonar-css-plugin/src/test/resources/bundle/test-bundle.zip b/sonar-css-plugin/src/test/resources/bundle/test-bundle.zip deleted file mode 100644 index 446e89f..0000000 Binary files a/sonar-css-plugin/src/test/resources/bundle/test-bundle.zip and /dev/null differ diff --git a/sonar-css-plugin/src/test/resources/bundle/test-css-bundle.zip b/sonar-css-plugin/src/test/resources/bundle/test-css-bundle.zip new file mode 100644 index 0000000..3a0a924 Binary files /dev/null and b/sonar-css-plugin/src/test/resources/bundle/test-css-bundle.zip differ diff --git a/sonar-css-plugin/src/test/resources/executables/mockError.js b/sonar-css-plugin/src/test/resources/executables/mockError.js deleted file mode 100644 index 23849a4..0000000 --- a/sonar-css-plugin/src/test/resources/executables/mockError.js +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -console.log("Incorrect json might appear if exception thrown during analysis") diff --git a/sonar-css-plugin/src/test/resources/executables/mockExit.js b/sonar-css-plugin/src/test/resources/executables/mockExit.js deleted file mode 100644 index b18a959..0000000 --- a/sonar-css-plugin/src/test/resources/executables/mockExit.js +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -console.log("[]"); - -process.exit(process.argv[2]); diff --git a/sonar-css-plugin/src/test/resources/executables/mockStylelint.js b/sonar-css-plugin/src/test/resources/executables/mockStylelint.js deleted file mode 100644 index 70959dc..0000000 --- a/sonar-css-plugin/src/test/resources/executables/mockStylelint.js +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env node -var testFile = process.argv[2]; - -var result = [ - { - source: testFile, - - warnings: [ - { - text: "some message (color-no-invalid-hex)", - line: 2, - rule: "color-no-invalid-hex" - } - ] - } -]; - -var json = JSON.stringify(result); -console.log(json); diff --git a/sonar-css-plugin/src/test/resources/executables/mockSyntaxError.js b/sonar-css-plugin/src/test/resources/executables/mockSyntaxError.js deleted file mode 100644 index cd32af2..0000000 --- a/sonar-css-plugin/src/test/resources/executables/mockSyntaxError.js +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env node -var testFile = process.argv[2]; - -var result = [ - { - source: testFile, - - warnings: [ - { - text: "Missed semicolon (CssSyntaxError)", - line: 2, - rule: "CssSyntaxError" - } - ] - } -]; - -var json = JSON.stringify(result); -console.log(json); diff --git a/sonar-css-plugin/src/test/resources/executables/mockThrow.js b/sonar-css-plugin/src/test/resources/executables/mockThrow.js deleted file mode 100644 index ca88c27..0000000 --- a/sonar-css-plugin/src/test/resources/executables/mockThrow.js +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node - -throw new Error('houps!'); diff --git a/sonar-css-plugin/src/test/resources/executables/mockUnknownRule.js b/sonar-css-plugin/src/test/resources/executables/mockUnknownRule.js deleted file mode 100644 index 844b38b..0000000 --- a/sonar-css-plugin/src/test/resources/executables/mockUnknownRule.js +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env node -var testFile = process.argv[2]; - -var result = [ - { - source: testFile, - - warnings: [ - { - text: "some message", - line: 2, - rule: "unknown-rule-key" - } - ] - } -]; - -var json = JSON.stringify(result); -console.log(json); diff --git a/sonar-css-plugin/src/test/resources/executables/oldNodeVersion.js b/sonar-css-plugin/src/test/resources/executables/oldNodeVersion.js deleted file mode 100644 index 817b98a..0000000 --- a/sonar-css-plugin/src/test/resources/executables/oldNodeVersion.js +++ /dev/null @@ -1 +0,0 @@ -console.log("3.2.1"); diff --git a/sonar-css-plugin/src/test/resources/mock-start-server/startServer.js b/sonar-css-plugin/src/test/resources/mock-start-server/startServer.js new file mode 100644 index 0000000..c8b8d38 --- /dev/null +++ b/sonar-css-plugin/src/test/resources/mock-start-server/startServer.js @@ -0,0 +1,70 @@ +#!/usr/bin/env node + +const http = require('http'); +const port = process.argv[2]; + +console.log(`DEBUG testing debug log`) +console.log(`WARN testing warn log`) +console.log(`testing info log`) + +const requestHandler = (request, response) => { + let data = []; + request.on('data', chunk => { + data.push(chunk); + }); + request.on('end', () => { + let fileName = null; + if (data.length > 0) { + const analysisRequest = JSON.parse(data.join()); + fileName = analysisRequest.filePath.replace(/.*[\/\\]/g,""); + } + if (request.url === '/status') { + response.writeHead(200, { 'Content-Type': 'text/plain' }); + response.end('OK!'); + } else { + switch (fileName) { + case "file.css": + case "file.web": + case "file.php": + case "file.js": // to test that we will not save this issue even if it's provided by response + response.end(JSON.stringify([ + {line: 2, rule: "block-no-empty", text: "Unexpected empty block"} + ])); + break; + case "file-with-rule-id-message.css": + response.end(JSON.stringify([ + {line: 2, rule: "color-no-invalid-hex", text: "some message (color-no-invalid-hex)"} + ])); + break; + case "empty.css": + response.end(JSON.stringify([])); + break; + case "syntax-error.css": + response.end(JSON.stringify([ + {line: 2, rule: "CssSyntaxError", text: "Missed semicolon (CssSyntaxError)"} + ])); + break; + case "unknown-rule.css": + response.end(JSON.stringify([ + {line: 2, rule: "unknown-rule-key", text: "some message"} + ])); + break; + case "invalid-json-response.css": + response.end("["); + break; + default: + throw "Unexpected fileName: " + fileName; + } + } + }); +}; + +const server = http.createServer(requestHandler); + +server.listen(port, (err) => { + if (err) { + return console.log('something bad happened', err) + } + + console.log(`server is listening on ${port}`) +}); diff --git a/sonar-css-plugin/src/test/resources/mock-start-server/throw.js b/sonar-css-plugin/src/test/resources/mock-start-server/throw.js new file mode 100644 index 0000000..028dbc8 --- /dev/null +++ b/sonar-css-plugin/src/test/resources/mock-start-server/throw.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +throw "Something wrong happened" -- cgit v1.2.3