From 13d52b7dd495c68c72ad8ab3f5063307bf42cfad Mon Sep 17 00:00:00 2001 From: Tibor Blenessy Date: Mon, 13 Jan 2020 11:44:34 +0100 Subject: Implement close endpoint to shutdown the Node.js process (#243) --- .../plugin/server/CssAnalyzerBridgeServerTest.java | 9 +++++++ .../resources/mock-start-server/failedClose.js | 28 ++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 sonar-css-plugin/src/test/resources/mock-start-server/failedClose.js (limited to 'sonar-css-plugin/src/test') diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java index d0a2c2f..a880b14 100644 --- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java +++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/server/CssAnalyzerBridgeServerTest.java @@ -214,6 +214,15 @@ public class CssAnalyzerBridgeServerTest { "Skipping execution of CSS rules due to the problems with css-bundle server"); } + @Test + public void should_log_warning_when_failed_to_close() throws Exception { + cssAnalyzerBridgeServer = createCssAnalyzerBridgeServer("failedClose.js"); + cssAnalyzerBridgeServer.startServerLazily(context); + cssAnalyzerBridgeServer.stop(); + assertThat(logTester.logs(WARN)).contains("Failed to close stylelint-bridge server"); + } + + @Test public void should_fail_if_bad_json_response() throws Exception { cssAnalyzerBridgeServer = createCssAnalyzerBridgeServer(START_SERVER_SCRIPT); diff --git a/sonar-css-plugin/src/test/resources/mock-start-server/failedClose.js b/sonar-css-plugin/src/test/resources/mock-start-server/failedClose.js new file mode 100644 index 0000000..3c0039e --- /dev/null +++ b/sonar-css-plugin/src/test/resources/mock-start-server/failedClose.js @@ -0,0 +1,28 @@ +#!/usr/bin/env node + +const http = require('http'); +const port = process.argv[2]; + +const requestHandler = (request, response) => { + let data = []; + request.on('data', chunk => { + data.push(chunk); + }); + if (request.url === '/status') { + response.writeHead(200, {'Content-Type': 'text/plain'}); + response.end('OK!'); + } else { + throw "Failure"; + } +}; + +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}`) +}); + -- cgit v1.2.3