Skip to content

Fix a bug where attach didn't handle stdin. Add testing. #119

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 17, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 183 additions & 0 deletions node-client/coverage/attach.ts.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for attach.ts</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
<a href="index.html">All files</a> attach.ts
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">92.86% </span>
<span class="quiet">Statements</span>
<span class='fraction'>13/14</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">75% </span>
<span class="quiet">Branches</span>
<span class='fraction'>3/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>3/3</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">92.86% </span>
<span class="quiet">Lines</span>
<span class='fraction'>13/14</span>
</div>
</div>
<p class="quiet">
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
</p>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
<a name='L2'></a><a href='#L2'>2</a>
<a name='L3'></a><a href='#L3'>3</a>
<a name='L4'></a><a href='#L4'>4</a>
<a name='L5'></a><a href='#L5'>5</a>
<a name='L6'></a><a href='#L6'>6</a>
<a name='L7'></a><a href='#L7'>7</a>
<a name='L8'></a><a href='#L8'>8</a>
<a name='L9'></a><a href='#L9'>9</a>
<a name='L10'></a><a href='#L10'>10</a>
<a name='L11'></a><a href='#L11'>11</a>
<a name='L12'></a><a href='#L12'>12</a>
<a name='L13'></a><a href='#L13'>13</a>
<a name='L14'></a><a href='#L14'>14</a>
<a name='L15'></a><a href='#L15'>15</a>
<a name='L16'></a><a href='#L16'>16</a>
<a name='L17'></a><a href='#L17'>17</a>
<a name='L18'></a><a href='#L18'>18</a>
<a name='L19'></a><a href='#L19'>19</a>
<a name='L20'></a><a href='#L20'>20</a>
<a name='L21'></a><a href='#L21'>21</a>
<a name='L22'></a><a href='#L22'>22</a>
<a name='L23'></a><a href='#L23'>23</a>
<a name='L24'></a><a href='#L24'>24</a>
<a name='L25'></a><a href='#L25'>25</a>
<a name='L26'></a><a href='#L26'>26</a>
<a name='L27'></a><a href='#L27'>27</a>
<a name='L28'></a><a href='#L28'>28</a>
<a name='L29'></a><a href='#L29'>29</a>
<a name='L30'></a><a href='#L30'>30</a>
<a name='L31'></a><a href='#L31'>31</a>
<a name='L32'></a><a href='#L32'>32</a>
<a name='L33'></a><a href='#L33'>33</a>
<a name='L34'></a><a href='#L34'>34</a>
<a name='L35'></a><a href='#L35'>35</a>
<a name='L36'></a><a href='#L36'>36</a>
<a name='L37'></a><a href='#L37'>37</a>
<a name='L38'></a><a href='#L38'>38</a>
<a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">6x</span>
<span class="cline-any cline-yes">2x</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import querystring = require('querystring');
import stream = require('stream');
&nbsp;
import { KubeConfig } from './config';
import { WebSocketHandler, WebSocketInterface } from './web-socket-handler';
&nbsp;
export class Attach {
public 'handler': WebSocketInterface;
&nbsp;
public constructor(config: KubeConfig, websocketInterface?: WebSocketInterface) {
<span class="missing-if-branch" title="else path not taken" >E</span>if (websocketInterface) {
this.handler = websocketInterface;
} else {
<span class="cstat-no" title="statement not covered" > this.handler = new WebSocketHandler(config);</span>
}
}
&nbsp;
public async attach(namespace: string, podName: string, containerName: string,
stdout: stream.Writable | any, stderr: stream.Writable | any, stdin: stream.Readable | any,
tty: boolean): Promise&lt;void&gt; {
const query = {
container: containerName,
stderr: stderr != null,
stdin: stdin != null,
stdout: stdout != null,
tty,
};
const queryStr = querystring.stringify(query);
const path = `/api/v1/namespaces/${namespace}/pods/${podName}/attach?${queryStr}`;
const conn = await this.handler.connect(path, null, (streamNum: number, buff: Buffer): boolean =&gt; {
WebSocketHandler.handleStandardStreams(streamNum, buff, stdout, stderr);
return true;
});
if (stdin != null) {
WebSocketHandler.handleStandardInput(conn, stdin);
}
}
}
&nbsp;</pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue Oct 09 2018 21:27:50 GMT-0700 (PDT)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="sorter.js"></script>
<script src="block-navigation.js"></script>
</body>
</html>
2 changes: 1 addition & 1 deletion node-client/coverage/config.ts.html
Original file line number Diff line number Diff line change
Expand Up @@ -1129,7 +1129,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Oct 08 2018 16:14:23 GMT-0700 (PDT)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue Oct 09 2018 21:27:50 GMT-0700 (PDT)
</div>
</div>
<script src="prettify.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion node-client/coverage/config_types.ts.html
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Oct 08 2018 16:14:23 GMT-0700 (PDT)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue Oct 09 2018 21:27:50 GMT-0700 (PDT)
</div>
</div>
<script src="prettify.js"></script>
Expand Down
49 changes: 31 additions & 18 deletions node-client/coverage/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,24 @@ <h1>
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">76.95% </span>
<span class="strong">79.79% </span>
<span class="quiet">Statements</span>
<span class='fraction'>207/269</span>
<span class='fraction'>225/282</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">73.79% </span>
<span class="strong">75.17% </span>
<span class="quiet">Branches</span>
<span class='fraction'>107/145</span>
<span class='fraction'>112/149</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">67.27% </span>
<span class="strong">72.41% </span>
<span class="quiet">Functions</span>
<span class='fraction'>37/55</span>
<span class='fraction'>42/58</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">76.95% </span>
<span class="strong">79.79% </span>
<span class="quiet">Lines</span>
<span class='fraction'>207/269</span>
<span class='fraction'>225/282</span>
</div>
</div>
<p class="quiet">
Expand All @@ -62,6 +62,19 @@ <h1>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="attach.ts"><a href="attach.ts.html">attach.ts</a></td>
<td data-value="92.86" class="pic high"><div class="chart"><div class="cover-fill" style="width: 92%;"></div><div class="cover-empty" style="width:8%;"></div></div></td>
<td data-value="92.86" class="pct high">92.86%</td>
<td data-value="14" class="abs high">13/14</td>
<td data-value="75" class="pct medium">75%</td>
<td data-value="4" class="abs medium">3/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="3" class="abs high">3/3</td>
<td data-value="92.86" class="pct high">92.86%</td>
<td data-value="14" class="abs high">13/14</td>
</tr>

<tr>
<td class="file high" data-value="config.ts"><a href="config.ts.html">config.ts</a></td>
<td data-value="86.9" class="pic high"><div class="chart"><div class="cover-fill" style="width: 86%;"></div><div class="cover-empty" style="width:14%;"></div></div></td>
<td data-value="86.9" class="pct high">86.9%</td>
Expand Down Expand Up @@ -115,15 +128,15 @@ <h1>

<tr>
<td class="file low" data-value="web-socket-handler.ts"><a href="web-socket-handler.ts.html">web-socket-handler.ts</a></td>
<td data-value="29.82" class="pic low"><div class="chart"><div class="cover-fill" style="width: 29%;"></div><div class="cover-empty" style="width:71%;"></div></div></td>
<td data-value="29.82" class="pct low">29.82%</td>
<td data-value="57" class="abs low">17/57</td>
<td data-value="11.43" class="pct low">11.43%</td>
<td data-value="35" class="abs low">4/35</td>
<td data-value="20" class="pct low">20%</td>
<td data-value="10" class="abs low">2/10</td>
<td data-value="29.82" class="pct low">29.82%</td>
<td data-value="57" class="abs low">17/57</td>
<td data-value="39.29" class="pic low"><div class="chart"><div class="cover-fill" style="width: 39%;"></div><div class="cover-empty" style="width:61%;"></div></div></td>
<td data-value="39.29" class="pct low">39.29%</td>
<td data-value="56" class="abs low">22/56</td>
<td data-value="17.14" class="pct low">17.14%</td>
<td data-value="35" class="abs low">6/35</td>
<td data-value="40" class="pct low">40%</td>
<td data-value="10" class="abs low">4/10</td>
<td data-value="39.29" class="pct low">39.29%</td>
<td data-value="56" class="abs low">22/56</td>
</tr>

</tbody>
Expand All @@ -132,7 +145,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Oct 08 2018 16:14:23 GMT-0700 (PDT)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue Oct 09 2018 21:27:50 GMT-0700 (PDT)
</div>
</div>
<script src="prettify.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion node-client/coverage/index.ts.html
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ <h1>
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Oct 08 2018 16:14:23 GMT-0700 (PDT)
generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Tue Oct 09 2018 21:27:50 GMT-0700 (PDT)
</div>
</div>
<script src="prettify.js"></script>
Expand Down
Loading