Skip to content
Snippets Groups Projects
Commit e20066b3 authored by Bjoern Kimminich's avatar Bjoern Kimminich
Browse files

Finalize slides

parent 7346536e
No related branches found
No related tags found
No related merge requests found
Showing
with 10951 additions and 30 deletions
......@@ -131,14 +131,14 @@
<section>
<h3>A pile of unattended issues</h3>
<img data-src="assets/appsec/issueCollection.png">
<h1 class="fragment">(?)</h1>
<h1 class="fragment">(🤔)</h1>
</section>
<section>
<h3>A pile of unattended issues (!)</h3>
<h3>Really a 💩-pile of unattended issues</h3>
<img data-src="assets/appsec/issueCollection2.png">
</section>
<section>
<h3>Counter: Use Labels</h3>
<h3>Counter: Use <span style="background: rgb(213,19,22)">&nbsp;labels&nbsp;</span> properly</h3>
<img data-src="assets/appsec/issueLabels.png" height="450">
</section>
<section>
......@@ -160,7 +160,7 @@
<section>
<h3>Ignored Pull Requests</h3>
<img data-src="assets/appsec/prDisaster.png">
<h1 class="fragment">(?)</h1>
<h1 class="fragment">(🤔)</h1>
</section>
<section>
<h3>Example for a PR flogged to death<span class="fragment" data-fragment-index="1">*</span></h3>
......@@ -186,7 +186,7 @@
</p>
</section>
<section>
<h3>Auto Counter: Enforced Coding Style</h3>
<h3>Auto Counter: 👊-enforced Coding Style</h3>
<img data-src="assets/appsec/enforcedCodingStyle.png">
<p>
<a href="http://standardjs.com">http://standardjs.com</a>
......@@ -244,16 +244,110 @@
</section>
</section>
<section>
<section data-url="https://sites.google.com/site/unclebobconsultingllc/">
<h2>Clean Code</h2>
<img data-src="assets/clean_code-317fed20577ef3ae7d65e62f407ae73d.png" height="300" class="no-box">
</section>
<section>
<h3>Clean Javascript! 😮</h3>
<pre><code class="hljs" data-trim contenteditable>
'use strict'
var path = require('path')
var utils = require('../lib/utils')
var challenges = require('../data/datacache').challenges
exports = module.exports = function servePremiumContent () {
return function (req, res) {
if (utils.notSolved(challenges.premiumPaywallChallenge)) {
utils.solve(challenges.premiumPaywallChallenge)
}
res.sendFile(path.resolve(__dirname, '../app/private/under-construction.gif'))
}
}
</code></pre>
</section>
<section>
<h3>Well, never mind...</h3>
<pre><code class="hljs" data-trim contenteditable>
fs.copy('app/index.template.html', 'app/index.html', {overwrite: true}, function () {
if (config.get('application.logo')) {
var logo = config.get('application.logo')
if (utils.startsWith(logo, 'http')) {
var logoPath = logo
logo = decodeURIComponent(logo.substring(logo.lastIndexOf('/') + 1))
utils.downloadToFile(logoPath, 'app/public/images/' + logo)
}
var logoImageTag = '<img class="navbar-brand navbar-logo" src="/public/images/' + logo + '">'
replace({ regex: /<img class="navbar-brand navbar-logo"(.*?)>/, replacement: logoImageTag, paths: ['app/index.html'], recursive: false, silent: true })
}
if (config.get('application.theme')) {
var themeCss = 'bower_components/bootswatch/' + config.get('application.theme') + '/bootstrap.min.css'
replace({ regex: /bower_components\/bootswatch\/.*\/bootstrap\.min\.css/, replacement: themeCss, paths: ['app/index.html'], recursive: false, silent: true })
}
})
</code></pre>
<p>...it's still Javascript at the end of the day! 🤐</p>
</section>
</section>
<section>
<section>
<h2>Test Automation</h2>
<img data-src="assets/protractor-logo-600.png" height="100" class="no-box">&nbsp;&nbsp;
<img data-src="assets/karma.png" height="100" class="no-box">
<div>
<img src="assets/u3lWw.gif" height="100" style="background: none; border:none;"/>
</div>
<div>
<img src="assets/protractor-logo-600.png" height="70" style="background: none; border:none; box-shadow:none;"/>
<img src="assets/logo-frisby.png" height="70" style="background: none; border:none; box-shadow:none;"/>
</div>
<div>
<img src="assets/phantomjs_400x400.png" height="90" style="background: none; border:none; box-shadow:none;"/>
<img src="assets/karma.png" height="90" style="background: none; border:none; box-shadow:none;"/>
<img src="assets/jasmine-horizontal.svg" height="90" style="background: none; border:none; box-shadow:none;"/>
<img src="assets/stryker.png" height="90" style="background: none; border:none; box-shadow:none;"/>
</div>
</section>
<section>
<h3>Example: UI Unit Test</h3>
<pre><code class="hljs" data-trim contenteditable>
it('should hold anonymous placeholder for email if current user is not logged in',
inject(function () {
$httpBackend.whenGET('/rest/user/whoami').respond(200, {user: {}})
$httpBackend.flush()
expect(scope.userEmail).toBe('anonymous')
})
)
</code></pre>
</section>
<section>
<h3>Example: API Integration Test</h3>
<pre><code class="hljs" data-trim contenteditable>
frisby.create('GET password change without passing any passwords')
.get(REST_URL + '/user/change-password')
.expectStatus(401)
.expectBodyContains('Password cannot be empty')
.toss()
</code></pre>
<small class="fragment"><strong>Snippet Injection Vulnerability</strong>: Did anyone notice how above code was totally butchered by <code>highlight.js</code>?</small>
</section>
<section>
<h3>Example: Challenge E2E Test</h3>
<pre><code>
describe('challenge "loginAdmin"', function () {
it('should log in Admin with SQLI attack on email field using "\' or 1=1--"', function () {
email.sendKeys('\' or 1=1--')
password.sendKeys('a')
loginButton.click()
expect(browser.getLocationAbsUrl()).toMatch(/\/search/)
})
protractor.expect.challengeSolved({challenge: 'Login Admin'})
})
</code></pre>
</section>
<section>
<h3>What is a realistic goal for <em>Test Coverage</em> ?</h3>
......@@ -281,6 +375,10 @@
<img data-src="assets/stryker.png" height="300" class="no-box"><br>
<p class="fragment">Reality check: Do your tests <em>actually test stuff</em>?</p>
</section>
<section>
<h3>Example: Report for Juice Shop CTF</h3>
<iframe data-src="assets/appsec/examples/mutation/html/index.html" width="800" height="500" frameborder="0" marginwidth="0" marginheight="0" scrolling="yes" style="border:3px solid #666; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
</section>
<section>
<h3>A realistic goal for <em>Mutation Coverage</em> ?</h3>
<h1 class="fragment">100%</h1>
......@@ -293,11 +391,14 @@
<th>CTF Extension</th>
</tr>
<tr>
<td>92%*</td>
<td>98%</td>
<td><h1>92%<span class="fragment" data-fragment-index="1">*</span></h1></td>
<td><h1>98%</h1></td>
</tr>
</table>
<small>*of the UI unit tests!</small>
<br>
<br>
<small class="fragment" data-fragment-index="1">*of the UI unit tests!</small>
<h1 class="fragment" data-fragment-index="2">(😏)</h1>
</section>
</section>
......@@ -333,23 +434,32 @@
<h1>My little OSS Sustainability Toolbox</h1>
</section>
<section>
<section>
<h2>Quality Metrics</h2>
<img data-src="assets/codeclimate.png" height="100" class="no-box">
<img data-src="assets/coveralls.png" height="100" class="no-box">
<img data-src="assets/bithound_logo.png" height="100" class="no-box"><br>
<img data-src="assets/codeclimate.png" height="95" class="no-box">
<img data-src="assets/coveralls.png" height="95" class="no-box"><br>
<img data-src="assets/bithound_logo.png" height="95" class="no-box">
</section>
<section>
<h2>Dependency Control</h2>
<img data-src="assets/node-security-logo-white.svg" height="100" class="no-box">
<img data-src="assets/gemnasium_lineal_bright-back.svg" height="100" class="no-box">
<h3>Example: Code Climate Stats</h3>
<img src="assets/appsec/codeClimate.png" height="450">
</section>
<section>
<h3>Example: bitHound Dashboard</h3>
<img src="assets/appsec/bitHound.png" height="450">
</section>
<section>
<h2>Truck Factor--</h2>
<p>Increase the number of team members that would have to leave the project to effectively kill it.</p>
<h3>Example: Coveralls 😡 at CTF-Extension</h3>
<img src="assets/appsec/coveralls.png" height="450">
</section>
<section>
<p>And now for the most important metric of all...</p>
<h1 class="fragment">🚚</h1>
</section>
<section>
<h2>🚚 Truck Factor</h2>
<p>The number of team members that would have to leave the project to effectively kill it.</p>
</section>
<section>
<h3>What is a realistic goal for <em>Truck Factor</em> ?</h3>
......@@ -358,6 +468,19 @@
</section>
</section>
<section>
<section>
<h2>Dependency Control</h2>
<img data-src="assets/gemnasium_lineal_bright-back.svg" height="100" class="no-box">
</section>
<section>
<h3>Example: Gemnasium Dashboard</h3>
<img src="assets/appsec/gemnasium.png" width="200">
<img src="assets/appsec/gemnasium2.png" width="200" class="fragment">
<img src="assets/appsec/gemnasium3.png" width="200" class="fragment">
</section>
</section>
<section>
<p>Chapter 4.1</p>
<h1>New Open Source Antipatterns</h1>
......@@ -418,7 +541,12 @@
<section>
<h3>Easy Counter: Make them visible</h3>
<img data-src="assets/appsec/contributors.png" height="400">
<h1 class="fragment">(?)</h1>
</section>
<section>
<h3>Some contribs deserve bonus visibility</h3>
<h2><a href="https://github.com/tghosth">Josh Grossmann</a> <small>(CTFd SQLs🚩)</small></h2>
<h2><a href="https://github.com/wurstbrot">Timo Pagel</a> <small>(Custom theming🎭)</small></h2>
<h2><a href="https://github.com/J12934">Jannik Hollenbach</a> <small>(CTF🌟/Docker📦)</small></h2>
</section>
<section>
<h2><code>git commit</code>s are not everything!</h2>
......
......
assets/appsec/bitHound.png

120 KiB

assets/appsec/codeClimate.png

48.5 KiB

assets/appsec/coveralls.png

270 KiB

This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
require('../../js/transition.js')
require('../../js/alert.js')
require('../../js/button.js')
require('../../js/carousel.js')
require('../../js/collapse.js')
require('../../js/dropdown.js')
require('../../js/modal.js')
require('../../js/tooltip.js')
require('../../js/popover.js')
require('../../js/scrollspy.js')
require('../../js/tab.js')
require('../../js/affix.js')
\ No newline at end of file
<html>
<head>
<title>calculateHintCost.js - Stryker report</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="highlightjs/styles/default.css">
<link rel="stylesheet" href="stryker.css">
</head>
<body>
<img class="stryker-image" alt="Stryker" src="stryker-80x80.png">
<div class="container-fluid">
<h1>calculateHintCost.js - Stryker report</h1><div class="col-md-12">
<h2>Summary</h2>
<div class="row">
<div class="col-xs-11">
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="calculateHintCost.js.html">calculateHintCost.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">10/10</th>
<td class="text-center">10</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">10</th>
<th class="text-center">0</th>
<th class="text-center">10</th>
</tr> </tbody>
</table>
</div>
</div>
<h2>Code</h2>
<div class="row">
<div class="col-sm-6">
<a href="#" class="stryker-collapse-expand-all">Expand all</a>
</div>
<div class="col-sm-offset-2 col-sm-4">
<label>
<input class="stryker-display-killed" type="checkbox"> Also show killed mutants
</label>
</div>
</div>
<pre><code class="lang-javascript"><span class="bg-null">&#x27;use strict&#x27;
var calculateScore &#x3D; require(&#x27;./calculateScore&#x27;)
var options &#x3D; require(&#x27;./options&#x27;)
/* The hint costs depend on the kind of hint and the difficulty of the challenge they are for:
paid text hint &#x3D; 10% of the challenge&#x27;s score value
paid url hint &#x3D; 20% of the challenge&#x27;s score value
free text/url hint &#x3D; free (as in free beer)
*/
function calculateHintCost (challenge, hintOption) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="0"><span class="label label-success">0</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="0">{
}</span><span class="stryker-original-code" data-mutant="0"><span class="bg-success">{
var costMultiplier &#x3D; 0
if (</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="1"><span class="label label-success">1</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="1">false</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="2"><span class="label label-success">2</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="2">hintOption !&#x3D;&#x3D; options.paidTextHints</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="3"><span class="label label-success">3</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="3">true</span><span class="stryker-original-code" data-mutant="1"><span class="stryker-original-code" data-mutant="2"><span class="stryker-original-code" data-mutant="3"><span class="bg-success">hintOption &#x3D;&#x3D;&#x3D; options.paidTextHints</span></span></span></span><span class="bg-success">) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="4"><span class="label label-success">4</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="4">{
}</span><span class="stryker-original-code" data-mutant="4"><span class="bg-success">{
costMultiplier &#x3D; 0.1
}</span></span><span class="bg-success"> else if (</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="5"><span class="label label-success">5</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="5">true</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="6"><span class="label label-success">6</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="6">hintOption !&#x3D;&#x3D; options.paidHintUrls</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="7"><span class="label label-success">7</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="7">false</span><span class="stryker-original-code" data-mutant="5"><span class="stryker-original-code" data-mutant="6"><span class="stryker-original-code" data-mutant="7"><span class="bg-success">hintOption &#x3D;&#x3D;&#x3D; options.paidHintUrls</span></span></span></span><span class="bg-success">) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="8"><span class="label label-success">8</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="8">{
}</span><span class="stryker-original-code" data-mutant="8"><span class="bg-success">{
costMultiplier &#x3D; 0.2
}</span></span><span class="bg-success">
return </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="9"><span class="label label-success">9</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="9">costMultiplier / calculateScore(challenge.difficulty)</span><span class="stryker-original-code" data-mutant="9"><span class="bg-success">costMultiplier * calculateScore(challenge.difficulty)</span></span><span class="bg-success">
}</span></span><span class="bg-null">
module.exports &#x3D; calculateHintCost</span>
</code></pre>
</div><footer>
Generated with stryker-html-reporter generator. Visit the <a href="http://stryker-mutator.github.io" target="_blank">Stryker website</a></footer>
</div>
<script src="stryker.js" defer></script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<title>calculateScore.js - Stryker report</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="highlightjs/styles/default.css">
<link rel="stylesheet" href="stryker.css">
</head>
<body>
<img class="stryker-image" alt="Stryker" src="stryker-80x80.png">
<div class="container-fluid">
<h1>calculateScore.js - Stryker report</h1><div class="col-md-12">
<h2>Summary</h2>
<div class="row">
<div class="col-xs-11">
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="calculateScore.js.html">calculateScore.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">4/4</th>
<td class="text-center">4</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">4</th>
<th class="text-center">0</th>
<th class="text-center">4</th>
</tr> </tbody>
</table>
</div>
</div>
<h2>Code</h2>
<div class="row">
<div class="col-sm-6">
<a href="#" class="stryker-collapse-expand-all">Expand all</a>
</div>
<div class="col-sm-offset-2 col-sm-4">
<label>
<input class="stryker-display-killed" type="checkbox"> Also show killed mutants
</label>
</div>
</div>
<pre><code class="lang-javascript"><span class="bg-null">&#x27;use strict&#x27;
/* This is a default multiplier whereby the score will be &#x3D; (difficulty x multiplier)
i.e. using these multipliers will create challenges with the following scores:
* &#x3D; 100
** &#x3D; 250
*** &#x3D; 450
**** &#x3D; 700
***** &#x3D; 1000
I think it is fair to assume that completing a 5* task will be 10 times harder than a 1* task.
*/
var multiplier &#x3D; </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="0"><span class="label label-success">0</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="0">[]</span><span class="stryker-original-code" data-mutant="0"><span class="bg-success">[ 100, 125, 150, 175, 200 ]</span></span><span class="bg-null">
function calculateScore (difficulty) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="1"><span class="label label-success">1</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="1">{
}</span><span class="stryker-original-code" data-mutant="1"><span class="bg-success">{
return </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="2"><span class="label label-success">2</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="2">difficulty / multiplier[difficulty - 1]</span><span class="stryker-original-code" data-mutant="2"><span class="bg-success">difficulty * multiplier[ </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="3"><span class="label label-success">3</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="3">difficulty + 1</span><span class="stryker-original-code" data-mutant="3"><span class="bg-success">difficulty - 1</span></span><span class="bg-success"> ]</span></span><span class="bg-success">
}</span></span><span class="bg-null">
module.exports &#x3D; calculateScore</span>
</code></pre>
</div><footer>
Generated with stryker-html-reporter generator. Visit the <a href="http://stryker-mutator.github.io" target="_blank">Stryker website</a></footer>
</div>
<script src="stryker.js" defer></script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<title>fetchChallenges.js - Stryker report</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="highlightjs/styles/default.css">
<link rel="stylesheet" href="stryker.css">
</head>
<body>
<img class="stryker-image" alt="Stryker" src="stryker-80x80.png">
<div class="container-fluid">
<h1>fetchChallenges.js - Stryker report</h1><div class="col-md-12">
<h2>Summary</h2>
<div class="row">
<div class="col-xs-11">
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="fetchChallenges.js.html">fetchChallenges.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">6/6</th>
<td class="text-center">6</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">6</th>
<th class="text-center">0</th>
<th class="text-center">6</th>
</tr> </tbody>
</table>
</div>
</div>
<h2>Code</h2>
<div class="row">
<div class="col-sm-6">
<a href="#" class="stryker-collapse-expand-all">Expand all</a>
</div>
<div class="col-sm-offset-2 col-sm-4">
<label>
<input class="stryker-display-killed" type="checkbox"> Also show killed mutants
</label>
</div>
</div>
<pre><code class="lang-javascript"><span class="bg-null">&#x27;use strict&#x27;
var Promise &#x3D; require(&#x27;bluebird&#x27;)
var request &#x3D; require(&#x27;request-promise&#x27;)
function fetchChallenges (juiceShopUrl) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="0"><span class="label label-success">0</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="0">{
}</span><span class="stryker-original-code" data-mutant="0"><span class="bg-success">{
return new Promise(function (resolve, reject) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="1"><span class="label label-success">1</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="1">{
}</span><span class="stryker-original-code" data-mutant="1"><span class="bg-success">{
request({ url: </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="2"><span class="label label-success">2</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="2">juiceShopUrl - &#x27;/api/Challenges&#x27;</span><span class="stryker-original-code" data-mutant="2"><span class="bg-success">juiceShopUrl + &#x27;/api/Challenges&#x27;</span></span><span class="bg-success">, json: true }).then(function (body) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="3"><span class="label label-success">3</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="3">{
}</span><span class="stryker-original-code" data-mutant="3"><span class="bg-success">{
resolve(body.data)
}</span></span><span class="bg-success">).catch(function (error) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="4"><span class="label label-success">4</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="4">{
}</span><span class="stryker-original-code" data-mutant="4"><span class="bg-success">{
reject(</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="5"><span class="label label-success">5</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="5">&#x27;Failed to fetch challenges from API! &#x27; - error</span><span class="stryker-original-code" data-mutant="5"><span class="bg-success">&#x27;Failed to fetch challenges from API! &#x27; + error</span></span><span class="bg-success">)
}</span></span><span class="bg-success">)
}</span></span><span class="bg-success">)
}</span></span><span class="bg-null">
module.exports &#x3D; fetchChallenges</span>
</code></pre>
</div><footer>
Generated with stryker-html-reporter generator. Visit the <a href="http://stryker-mutator.github.io" target="_blank">Stryker website</a></footer>
</div>
<script src="stryker.js" defer></script>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
/*
Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #F0F0F0;
}
/* Base color: saturation 0; */
.hljs,
.hljs-subst {
color: #444;
}
.hljs-comment {
color: #888888;
}
.hljs-keyword,
.hljs-attribute,
.hljs-selector-tag,
.hljs-meta-keyword,
.hljs-doctag,
.hljs-name {
font-weight: bold;
}
/* User color: hue: 0 */
.hljs-type,
.hljs-string,
.hljs-number,
.hljs-selector-id,
.hljs-selector-class,
.hljs-quote,
.hljs-template-tag,
.hljs-deletion {
color: #880000;
}
.hljs-title,
.hljs-section {
color: #880000;
font-weight: bold;
}
.hljs-regexp,
.hljs-symbol,
.hljs-variable,
.hljs-template-variable,
.hljs-link,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #BC6060;
}
/* Language color: hue: 90; */
.hljs-literal {
color: #78A960;
}
.hljs-built_in,
.hljs-bullet,
.hljs-code,
.hljs-addition {
color: #397300;
}
/* Meta color: hue: 200 */
.hljs-meta {
color: #1f7199;
}
.hljs-meta-string {
color: #4d99bf;
}
/* Misc effects */
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
<html>
<head>
<title>hmac.js - Stryker report</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="highlightjs/styles/default.css">
<link rel="stylesheet" href="stryker.css">
</head>
<body>
<img class="stryker-image" alt="Stryker" src="stryker-80x80.png">
<div class="container-fluid">
<h1>hmac.js - Stryker report</h1><div class="col-md-12">
<h2>Summary</h2>
<div class="row">
<div class="col-xs-11">
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="hmac.js.html">hmac.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">1/1</th>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">1</th>
<th class="text-center">0</th>
<th class="text-center">1</th>
</tr> </tbody>
</table>
</div>
</div>
<h2>Code</h2>
<div class="row">
<div class="col-sm-6">
<a href="#" class="stryker-collapse-expand-all">Expand all</a>
</div>
<div class="col-sm-offset-2 col-sm-4">
<label>
<input class="stryker-display-killed" type="checkbox"> Also show killed mutants
</label>
</div>
</div>
<pre><code class="lang-javascript"><span class="bg-null">&#x27;use strict&#x27;
var jsSHA &#x3D; require(&#x27;jssha&#x27;)
function hmac (text, secretKey) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="0"><span class="label label-success">0</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="0">{
}</span><span class="stryker-original-code" data-mutant="0"><span class="bg-success">{
var shaObj &#x3D; new jsSHA(&#x27;SHA-1&#x27;, &#x27;TEXT&#x27;) // eslint-disable-line new-cap
shaObj.setHMACKey(secretKey, &#x27;TEXT&#x27;)
shaObj.update(text)
return shaObj.getHMAC(&#x27;HEX&#x27;)
}</span></span><span class="bg-null">
module.exports &#x3D; hmac</span>
</code></pre>
</div><footer>
Generated with stryker-html-reporter generator. Visit the <a href="http://stryker-mutator.github.io" target="_blank">Stryker website</a></footer>
</div>
<script src="stryker.js" defer></script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<title>\C\Data\GitHub\juice-shop-ctf-server\lib - Stryker report</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="highlightjs/styles/default.css">
<link rel="stylesheet" href="stryker.css">
</head>
<body>
<img class="stryker-image" alt="Stryker" src="stryker-80x80.png">
<div class="container-fluid">
<h1>\C\Data\GitHub\juice-shop-ctf-server\lib - Stryker report</h1><div class="col-md-12">
<div class="row">
<div class="totals col-xs-11">
<h2>Totals</h2>
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="\C\Data\GitHub\juice-shop-ctf-server\lib/index.html">\C\Data\GitHub\juice-shop-ctf-server\lib</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="98" aria-valuemin="0" aria-valuemax="100"
style="width: 98%;">
98%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">125/127</th>
<td class="text-center">125</td>
<td class="text-center">2</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">125</th>
<th class="text-center">2</th>
<th class="text-center">127</th>
</tr> </tbody>
</table>
<hr>
</div>
<div class="finegrained col-xs-11">
<h2>Finegrained</h2>
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="calculateHintCost.js.html">calculateHintCost.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">10/10</th>
<td class="text-center">10</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">10</th>
<th class="text-center">0</th>
<th class="text-center">10</th>
</tr> <tr>
<td><a href="calculateScore.js.html">calculateScore.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">4/4</th>
<td class="text-center">4</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">4</th>
<th class="text-center">0</th>
<th class="text-center">4</th>
</tr> <tr>
<td><a href="fetchChallenges.js.html">fetchChallenges.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">6/6</th>
<td class="text-center">6</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">6</th>
<th class="text-center">0</th>
<th class="text-center">6</th>
</tr> <tr>
<td><a href="generateSql.js.html">generateSql.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="97" aria-valuemin="0" aria-valuemax="100"
style="width: 97%;">
97%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">87/89</th>
<td class="text-center">87</td>
<td class="text-center">2</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">87</th>
<th class="text-center">2</th>
<th class="text-center">89</th>
</tr> <tr>
<td><a href="hmac.js.html">hmac.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">1/1</th>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">1</th>
<th class="text-center">0</th>
<th class="text-center">1</th>
</tr> <tr>
<td><a href="options.js.html">options.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
style="width: 0%;">
0%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">0/0</th>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">0</th>
<th class="text-center">0</th>
<th class="text-center">0</th>
</tr> <tr>
<td><a href="secretKey.js.html">secretKey.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">10/10</th>
<td class="text-center">10</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">10</th>
<th class="text-center">0</th>
<th class="text-center">10</th>
</tr> <tr>
<td><a href="url.js.html">url.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">2/2</th>
<td class="text-center">2</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">2</th>
<th class="text-center">0</th>
<th class="text-center">2</th>
</tr> <tr>
<td><a href="writeToFile.js.html">writeToFile.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">5/5</th>
<td class="text-center">5</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">5</th>
<th class="text-center">0</th>
<th class="text-center">5</th>
</tr>
</tbody>
</table>
</div>
</div>
</div><footer>
Generated with stryker-html-reporter generator. Visit the <a href="http://stryker-mutator.github.io" target="_blank">Stryker website</a></footer>
</div>
<script src="stryker.js" defer></script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<title>options.js - Stryker report</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="highlightjs/styles/default.css">
<link rel="stylesheet" href="stryker.css">
</head>
<body>
<img class="stryker-image" alt="Stryker" src="stryker-80x80.png">
<div class="container-fluid">
<h1>options.js - Stryker report</h1><div class="col-md-12">
<h2>Summary</h2>
<div class="row">
<div class="col-xs-11">
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="options.js.html">options.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
style="width: 0%;">
0%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">0/0</th>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">0</th>
<th class="text-center">0</th>
<th class="text-center">0</th>
</tr> </tbody>
</table>
</div>
</div>
<h2>Code</h2>
<div class="row">
<div class="col-sm-6">
<a href="#" class="stryker-collapse-expand-all">Expand all</a>
</div>
<div class="col-sm-offset-2 col-sm-4">
<label>
<input class="stryker-display-killed" type="checkbox"> Also show killed mutants
</label>
</div>
</div>
<pre><code class="lang-javascript"><span class="bg-null">&#x27;use strict&#x27;
module.exports &#x3D; {
noTextHints: &#x27;No text hints&#x27;,
freeTextHints: &#x27;Free text hints&#x27;,
paidTextHints: &#x27;Paid text hints&#x27;,
noHintUrls: &#x27;No hint URLs&#x27;,
freeHintUrls: &#x27;Free hint URLs&#x27;,
paidHintUrls: &#x27;Paid hint URLs&#x27;
}</span>
</code></pre>
</div><footer>
Generated with stryker-html-reporter generator. Visit the <a href="http://stryker-mutator.github.io" target="_blank">Stryker website</a></footer>
</div>
<script src="stryker.js" defer></script>
</body>
</html>
\ No newline at end of file
<html>
<head>
<title>secretKey.js - Stryker report</title>
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="highlightjs/styles/default.css">
<link rel="stylesheet" href="stryker.css">
</head>
<body>
<img class="stryker-image" alt="Stryker" src="stryker-80x80.png">
<div class="container-fluid">
<h1>secretKey.js - Stryker report</h1><div class="col-md-12">
<h2>Summary</h2>
<div class="row">
<div class="col-xs-11">
<table class="table table-hover table-bordered table-no-top">
<thead>
<tr>
<th style="width: 20%"><div><span>File</span></div></th>
<th colspan="2"><div><span>Mutation score</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Killed</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Survived</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Timeout</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># No coverage</span></div></th>
<th class="rotate text-center" style="width: 50px"><div><span># Errors</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total detected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total undetected</span></div></th>
<th class="rotate rotate-width-70 text-center" style="width: 70px"><div><span>Total mutants</span></div></th>
</tr>
</thead> <tbody>
<tr>
<td><a href="secretKey.js.html">secretKey.js</a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"
style="width: 100%;">
100%
</div>
</div>
</td>
<th class="text-center" style="width: 10%">10/10</th>
<td class="text-center">10</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<th class="text-center">10</th>
<th class="text-center">0</th>
<th class="text-center">10</th>
</tr> </tbody>
</table>
</div>
</div>
<h2>Code</h2>
<div class="row">
<div class="col-sm-6">
<a href="#" class="stryker-collapse-expand-all">Expand all</a>
</div>
<div class="col-sm-offset-2 col-sm-4">
<label>
<input class="stryker-display-killed" type="checkbox"> Also show killed mutants
</label>
</div>
</div>
<pre><code class="lang-javascript"><span class="bg-null">&#x27;use strict&#x27;
var Promise &#x3D; require(&#x27;bluebird&#x27;)
var request &#x3D; require(&#x27;request-promise&#x27;)
var isUrl &#x3D; require(&#x27;./url&#x27;)
function secretKey (origin) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="0"><span class="label label-success">0</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="0">{
}</span><span class="stryker-original-code" data-mutant="0"><span class="bg-success">{
return new Promise(function (resolve, reject) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="1"><span class="label label-success">1</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="1">{
}</span><span class="stryker-original-code" data-mutant="1"><span class="bg-success">{
if (</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="2"><span class="label label-success">2</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="2">false</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="3"><span class="label label-success">3</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="3">true</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="4"><span class="label label-success">4</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="4">origin || isUrl(origin)</span><span class="stryker-original-code" data-mutant="2"><span class="stryker-original-code" data-mutant="3"><span class="stryker-original-code" data-mutant="4"><span class="bg-success">origin &amp;&amp; isUrl(origin)</span></span></span></span><span class="bg-success">) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="5"><span class="label label-success">5</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="5">{
}</span><span class="stryker-original-code" data-mutant="5"><span class="bg-success">{
request(origin)
.then(function (body) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="6"><span class="label label-success">6</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="6">{
}</span><span class="stryker-original-code" data-mutant="6"><span class="bg-success">{
resolve(body)
}</span></span><span class="bg-success">).catch(function (error) </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="7"><span class="label label-success">7</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="7">{
}</span><span class="stryker-original-code" data-mutant="7"><span class="bg-success">{
reject(</span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="8"><span class="label label-success">8</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="8">&#x27;Failed to fetch secret key from URL! &#x27; - error</span><span class="stryker-original-code" data-mutant="8"><span class="bg-success">&#x27;Failed to fetch secret key from URL! &#x27; + error</span></span><span class="bg-success">)
}</span></span><span class="bg-success">)
}</span></span><span class="bg-success"> else </span><a href="#" class="stryker-mutant-button" data-mutant-status-annotation="success" data-mutant="9"><span class="label label-success">9</span></a><span class="label label-info stryker-mutant-replacement" hidden data-mutant="9">{
}</span><span class="stryker-original-code" data-mutant="9"><span class="bg-success">{
resolve(origin)
}</span></span><span class="bg-success">
}</span></span><span class="bg-success">)
}</span></span><span class="bg-null">
module.exports &#x3D; secretKey</span>
</code></pre>
</div><footer>
Generated with stryker-html-reporter generator. Visit the <a href="http://stryker-mutator.github.io" target="_blank">Stryker website</a></footer>
</div>
<script src="stryker.js" defer></script>
</body>
</html>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment