auto-OrangeHRM / node_modules / multiple-cucumber-html-reporter / templates / components / scenarios.tmpl
scenarios.tmpl
Raw
<% _.each(scenarios, function(scenario, scenarioIndex) { %>
    <div class="col-md-12 col-sm-12 col-xs-12">
        <div class="x_panel" style="height: auto;">
            <div class="x_title">

                <div class="tags">
                    <% if (scenario.tags) { %>
                        <% var amount = scenario.tags.length; %>
                        <% if (amount > 0 ){ %>
                            <i class="fa fa-tag<% if(amount > 1 ) {%>s<% } %> fa-lg"></i>
                            <% _.each(scenario.tags, (tag) => {%>
                                <span class="tag"><%= tag.name %></span>
                            <%}); %>
                        <% } %>
                    <% } %>
                </div>

                <h2><%= scenario.keyword %>: <small><%= scenario.name %></small></h2>

                <ul class="nav navbar-right panel_toolbox">
                    <li>
                        <a class="collapse-link"><i class="fa fa-chevron-down"></i></a>
                    </li>

                    <% if (scenario.ambiguous) { %>
                        <li>
                            <span class="step ambiguous-background" data-toggle="tooltip" data-placement="top" title="Scenario has double step implementation and failed because of that.">
                            <%= scenario.ambiguous %>
                            </span>
                        </li>
                    <% } %>

                    <% if (scenario.pending) { %>
                        <li>
                            <span class="step pending-background" data-toggle="tooltip" title="Scenario is pending"><%= scenario.pending %></span>
                        </li>
                    <% } %>

                    <% if (scenario.skipped) { %>
                        <li>
                            <span class="step skipped-background" data-toggle="tooltip" title="Scenario is skipped"><%= scenario.skipped %></span>
                        </li>
                    <% } %>

                    <% if (scenario.failed) { %>
                        <li>
                            <span class="step failed-background" data-toggle="tooltip" title="Scenario failed"><%= scenario.failed %></span>
                        </li>
                    <% } %>

                    <% if (scenario.passed) { %>
                        <li>
                            <span class="step passed-background" data-toggle="tooltip" title="Scenario passed"><%= scenario.passed %></span>
                        </li>
                    <% } %>

                    <% if (scenario.notDefined) { %>
                        <li>
                            <span class="step not-defined-background" data-toggle="tooltip" title="Scenario has nop step implementation."><%= scenario.notDefined %></span>
                        </li>
                    <% } %>

                    <% if (suite.displayDuration) { %>
                        <li>
                            <span style="font-size:1.2em"> Duration:</span>
                            <span style=padding-right:5em><%= scenario.time %></span>
                        </li>
                    <% } %>
                </ul>

                <div class="clearfix"></div>
            </div>

            <div class="x_content" style="display: none;">
                <div class="scenario-step-container"><%= scenario.description %></div>
                    <% _.each(scenario.steps, function(step, stepIndex) { %>
                        <% if(!step.hidden || step.image || step.text || step.html || step.attachment) { %>
                            <div class="scenario-step-container">

                                <% if(step.result) { %>
                                    <% if(step.result.status.toLowerCase() === 'passed') { %>
                                        <div class="label" title="Success">
                                            <i class="fa fa-check-circle fa-2x passed-color" data-toggle="tooltip" data-placement="top" title="Step passed"></i>
                                        </div>
                                    <% } else if(step.result.status.toLowerCase() === 'failed') { %>
                                        <div class="label" data-toggle="tooltip" data-placement="top" title="Step failed">
                                            <i class="fa fa-exclamation-circle fa-2x failed-color"></i>
                                        </div>
                                    <% } else if(step.result.status.toLowerCase() === 'skipped') { %>
                                        <div class="label" data-toggle="tooltip" data-placement="top" title="Step is skipped">
                                            <i class="fa fa-arrow-circle-right fa-2x skipped-color"></i>
                                        </div>
                                    <% } else if(step.result.status.toLowerCase() === 'pending') { %>
                                        <div class="label" data-toggle="tooltip" data-placement="top" title="Step is pending">
                                            <i class="fa fa-minus-circle fa-2x pending-color"></i>
                                        </div>
                                    <% } else if(step.result.status.toLowerCase() === 'ambiguous') { %>
                                        <div class="label" data-toggle="tooltip" data-placement="top" title="Step has double step implementation and failed because of that.">
                                            <i class="fa fa-flash fa-2x ambiguous-color"></i>
                                        </div>
                                    <% } else { %>
                                        <div class="label" data-toggle="tooltip" data-placement="top" title="Step has no implementation.">
                                            <i class="fa fa-question-circle fa-2x not-defined-color"></i>
                                        </div>
                                    <% } %>
                                <% } %>

                                <div class="text">
                                    <span class="keyword highlight"><%= step.keyword %></span>

                                    <% if(step.name) { %>
                                        <%= step.name.replace(/</g, '&lt;').replace(/>/g, '&gt;') %>
                                        <% if(step.restWireData) { %>
                                            <button type="button" class="btn btn-success btn-sm" data-toggle="collapse" data-target="#<%= step.id%>">REST Query</button>
                                            <div id="<%= step.id%>" class="collapse">
                                                <div class="panel panel-default">
                                                    <div class="panel-body">
                                                        <pre><%= step.restWireData %></pre>
                                                    </div>
                                                </div>
                                            </div>
                                        <% } %>
                                    <% } %>

                                    <% if(suite.displayDuration) { %>
                                        <% if (step.time) { %>
                                            <span class="duration"><%= step.time %></span>
                                        <% } else { %>
                                            <span class="duration">0s</span>
                                        <% } %>
                                    <% } %>

                                </div>

                                <% if(step.result) { %>
                                    <% if(step.result.status === 'undefined') { %>
                                        <pre class="info">
// With Callbacks
<%=step.keyword%>(/^<%= step.name.replace(/"[^"]*"/g, '"\(\[\^\"\]\*\)"') %>$/, (<% for (var i=1; i<(step.name.split('"').length / 2); i++) { %>arg<%= i %>, <% } %>callback) => {
    // Write code here that turns the phrase above into concrete actions
    callback(null, 'pending');
});

// With Promises
<%=step.keyword%>(/^<%= step.name.replace(/"[^"]*"/g, '"\(\[\^\"\]\*\)"') %>$/, (<% for (var i=1; i<(step.name.split('"').length / 2); i++) { %>arg<%= i %>, <% } %>) => {
    // Write code here that turns the phrase above into concrete actions
    return Promise.resolve('pending');
});
                                        </pre>
                                    <% } %>

                                    <% if (step.result.error_message) { %>
                                        <a href="#error<%= scenarioIndex %>-<%= stepIndex %>-error" data-toggle="collapse">+ Show Error</a>
                                    <% } %>

                                    <% if (step.json) { %>
                                        <a href="#info<%= scenarioIndex %>-<%= stepIndex %>-json" data-toggle="collapse">+ Show Info</a>
                                    <% } %>
                                    
                                    <% if (step.text) { %>
                                        <a href="#info<%= scenarioIndex %>-<%= stepIndex %>-text" data-toggle="collapse">+ Show Info</a>
                                    <% } %>

                                    <% if (step.html) { %>
                                        <a href="#info<%= scenarioIndex %>-<%= stepIndex %>-html" data-toggle="collapse">+ Show Info</a>
                                    <% } %>

                                    <% if (step.image) { %>
                                        <a href="#info<%= scenarioIndex %>-<%= stepIndex %>-image" data-toggle="collapse">+ Screenshot</a>
                                    <% } %>

                                    <% if (!_.isEmpty(step.attachments)) { %>
                                        <span>[</span>
                                            <% _.each(step.attachments, function(attachment, attachmentIndex) { %>
                                                <a href="#info<%= scenarioIndex %>-<%= stepIndex %>-attachment<%= attachmentIndex %>" data-toggle="collapse">Attachment</a>
                                                <% if ( attachmentIndex < ( _.size(step.attachments) - 1 ) ) { %>
                                                    <span>,</span>
                                                <% } %>
                                            <% }); %>
                                        <span>]</span>
                                     <% } %>
                                <% } %>
                            </div>

                        <% if(step.result) { %>
                            <% if (step.result.error_message) { %>
                                <div id="error<%= scenarioIndex %>-<%= stepIndex %>-error" class="scenario-step-collapse collapse">
                                    <pre class=info><%= step.result.error_message.replace(/</g, '(').replace(/>/g, ')') %></pre>
                                </div>
                            <% } %>

                            <% if (step.json) { %>
                                <div id="info<%= scenarioIndex %>-<%= stepIndex %>-json" class="scenario-step-collapse collapse">
                                    <pre class=info><% try { %><%= JSON.stringify(step.json, undefined, 2) %><% } catch (error) { %><%= step.json %><% } %></pre>
                                </div>
                            <% } %>

                            <% if (step.text) { %>
                                <div id="info<%= scenarioIndex %>-<%= stepIndex %>-text" class="scenario-step-collapse collapse">
                                    <pre class=info><%= step.text.join('<br>') %></pre>
                                </div>
                            <% } %>

                            <% if (step.html) { %>
                                <div id="info<%= scenarioIndex %>-<%= stepIndex %>-html" class="scenario-step-collapse collapse">
                                    <div class=info><%= step.html.join('<br/>') %></div>
                                </div>
                            <% } %>

                            <% if (step.image) { %>
                                <div id="info<%= scenarioIndex %>-<%= stepIndex %>-image" class="scenario-step-collapse collapse">
                                    <% for( var i = 0; i < step.image.length; i++ ) { %>
                                        <img class="screenshot" src="<%= step.image[i] %>"/>
                                    <% } %>
                                </div>
                            <% } %>

                            <% if (!_.isEmpty(step.attachments)) { %>
                                <% _.each(step.attachments, function(attachment, attachmentIndex) { %>
                                    <div id="info<%= scenarioIndex %>-<%= stepIndex %>-attachment<%= attachmentIndex %>" class="scenario-step-collapse collapse">
                                        <object class="attachment-object" type="<%= attachment.type %>" id="my_attachments_<%= attachmentIndex %>" data="<%= attachment.data %>"></object>
                                    </div>
                                <% }); %>
                            <% } %>
                        <% } %>

                        <% if(step.arguments) { %>
                            <% for( var i = 0; i < step.arguments.length; i++ ) { %>
                                <div class="scenario-scroll-bar">
                                    <% if(step.arguments[i]["rows"]) { %>
                                        <table class="table arguments">
                                            <% var rows = step.arguments[i]["rows"]; %>
                                            <tr>
                                                <% var cells = rows[0]["cells"]; %>
                                                <% for( var k = 0; k < cells.length; k++ ) { %>
                                                    <th><%= cells[k] %></th>
                                                <% } %>
                                            </tr>

                                            <% for( var j = 1; j < rows.length; j++ ) { %>
                                                <tr>
                                                    <% var cells = rows[j]["cells"]; %>
                                                    <% for( var k = 0; k < cells.length; k++ ) { %>
                                                        <td><%= cells[k] %></td>
                                                    <% } %>
                                                </tr>
                                            <% } %>
                                        </table>
                                    <% } %>
                                </div>

                                <% if(step.arguments[i]["content"]) { %>
                                    <pre class="info"><%= step.arguments[i]["content"].replace(/</g, '(').replace(/>/g, ')') %></pre>
                                <% } %>
                            <% } %>
                        <% } %>

                    <% } %>
                <% }); %>
            </div>
        </div>
    </div>
<% }); %>