report coverage

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-30 12:49:09 -05:00
parent bea7f8ca14
commit 6d5fb9a3b9
4 changed files with 176 additions and 107 deletions

View File

@ -0,0 +1 @@
export {};

View File

@ -0,0 +1,28 @@
import { testView } from '../../../test/_globals.js';
import { logout, login, ajaxDelayMillis } from '../../support/index.js';
describe('Reports', () => {
beforeEach(() => {
logout();
login(testView);
cy.visit('/reports');
});
afterEach(logout);
it('Has no detectable accessibility issues', () => {
cy.visit('/reports');
cy.location('pathname').should('equal', '/reports');
cy.injectAxe();
cy.checkA11y();
});
it('Exports all reports without parameters', () => {
cy.get("a:not(.is-hidden)[download][href*='/reports/']").each(($reportLink) => {
cy.wrap($reportLink).click({ force: true });
cy.wait(ajaxDelayMillis);
});
});
it('Exports all reports with parameters', () => {
cy.get("form[action*='/reports/']").each(($reportLink) => {
cy.wrap($reportLink).invoke('attr', 'target', '_blank').submit();
cy.wait(ajaxDelayMillis);
});
});
});

View File

@ -0,0 +1,36 @@
import { testView } from '../../../test/_globals.js'
import { logout, login, ajaxDelayMillis } from '../../support/index.js'
describe('Reports', () => {
beforeEach(() => {
logout()
login(testView)
cy.visit('/reports')
})
afterEach(logout)
it('Has no detectable accessibility issues', () => {
cy.visit('/reports')
cy.location('pathname').should('equal', '/reports')
cy.injectAxe()
cy.checkA11y()
})
it('Exports all reports without parameters', () => {
cy.get("a:not(.is-hidden)[download][href*='/reports/']").each(
($reportLink) => {
cy.wrap($reportLink).click({ force: true })
cy.wait(ajaxDelayMillis)
}
)
})
it('Exports all reports with parameters', () => {
cy.get("form[action*='/reports/']").each(($reportLink) => {
cy.wrap($reportLink).invoke('attr', 'target', '_blank').submit()
cy.wait(ajaxDelayMillis)
})
})
})

View File

@ -3,52 +3,52 @@
<div class="columns">
<div class="column is-3">
<aside class="menu">
<h2 class="menu-label">
Reports
</h2>
<ul class="menu-list">
<li>
<a class="is-active" href="#tab--workOrders">
<span class="icon"><i class="fas fa-fw fa-hard-hat" aria-hidden="true"></i></span>
<span>Work Orders</span>
</a>
</li>
<li>
<a href="#tab--lotOccupancies">
<span class="icon"><i class="fas fa-fw fa-user" aria-hidden="true"></i></span>
<span><%= configFunctions.getProperty("aliases.occupancies") %></span>
</a>
</li>
<li>
<a href="#tab--lots">
<span class="icon"><i class="fas fa-fw fa-vector-square" aria-hidden="true"></i></span>
<span><%= configFunctions.getProperty("aliases.lots") %></span>
</a>
</li>
<li>
<a href="#tab--maps">
<span class="icon"><i class="far fa-fw fa-map" aria-hidden="true"></i></span>
<span><%= configFunctions.getProperty("aliases.maps") %></span>
</a>
</li>
</ul>
<h2 class="menu-label">
Table Exports
</h2>
<ul class="menu-list">
<li>
<a href="#tab--dataTableExports">
<span class="icon"><i class="fas fa-fw fa-table" aria-hidden="true"></i></span>
<span>Data Tables</span>
</a>
</li>
<li>
<a href="#tab--configTableExports">
<span class="icon"><i class="fas fa-fw fa-table" aria-hidden="true"></i></span>
<span>Config Tables</span>
</a>
</li>
</ul>
<h2 class="menu-label">
Reports
</h2>
<ul class="menu-list">
<li>
<a class="is-active" href="#tab--workOrders">
<span class="icon"><i class="fas fa-fw fa-hard-hat" aria-hidden="true"></i></span>
<span>Work Orders</span>
</a>
</li>
<li>
<a href="#tab--lotOccupancies">
<span class="icon"><i class="fas fa-fw fa-user" aria-hidden="true"></i></span>
<span><%= configFunctions.getProperty("aliases.occupancies") %></span>
</a>
</li>
<li>
<a href="#tab--lots">
<span class="icon"><i class="fas fa-fw fa-vector-square" aria-hidden="true"></i></span>
<span><%= configFunctions.getProperty("aliases.lots") %></span>
</a>
</li>
<li>
<a href="#tab--maps">
<span class="icon"><i class="far fa-fw fa-map" aria-hidden="true"></i></span>
<span><%= configFunctions.getProperty("aliases.maps") %></span>
</a>
</li>
</ul>
<h2 class="menu-label">
Table Exports
</h2>
<ul class="menu-list">
<li>
<a href="#tab--dataTableExports">
<span class="icon"><i class="fas fa-fw fa-table" aria-hidden="true"></i></span>
<span>Data Tables</span>
</a>
</li>
<li>
<a href="#tab--configTableExports">
<span class="icon"><i class="fas fa-fw fa-table" aria-hidden="true"></i></span>
<span>Config Tables</span>
</a>
</li>
</ul>
</aside>
</div>
<div class="column">
@ -78,7 +78,7 @@
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless">Open Work Orders</h3>
<h2 class="title is-5 is-marginless">Open Work Orders</h2>
<p>
All active work orders without completion dates.
</p>
@ -89,19 +89,19 @@
<div class="column">
<div class="panel">
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/workOrders/outlook">
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
<i class="fas fa-2x fa-calendar" aria-hidden="true"></i>
</span><br />
<span class="tag is-info">ICS</span>
</div>
<div>
<h3 class="title is-5 is-marginless">Work Order Milestone Calendar</h3>
<p>
Upcoming and recently passed work order milestones,
compatible with Microsoft Outlook and other calendar tools.
</p>
</div>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
<i class="fas fa-2x fa-calendar" aria-hidden="true"></i>
</span><br />
<span class="tag is-info">ICS</span>
</div>
<div>
<h2 class="title is-5 is-marginless">Work Order Milestone Calendar</h2>
<p>
Upcoming and recently passed work order milestones,
compatible with Microsoft Outlook and other calendar tools.
</p>
</div>
</a>
</div>
</div>
@ -120,7 +120,9 @@
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless">Current <%= configFunctions.getProperty("aliases.occupancy") %> By <%= configFunctions.getProperty("aliases.map") %></h3>
<h2 class="title is-5 is-marginless">
Current <%= configFunctions.getProperty("aliases.occupancy") %> By <%= configFunctions.getProperty("aliases.map") %>
</h2>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lotOccupancies-current-byMapId--mapId">
@ -154,7 +156,7 @@
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless">Transactions by Date</h3>
<h2 class="title is-5 is-marginless">Transactions by Date</h2>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lotOccupancyTransactions-byTransactionDateString--transactionDateString">
@ -186,30 +188,32 @@
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless"><%= configFunctions.getProperty("aliases.lots") %> By <%= configFunctions.getProperty("aliases.map") %></h3>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lots-byMapId--mapId">
<%= configFunctions.getProperty("aliases.map") %>
</label>
</div>
<div class="control is-expanded">
<div class="select is-small is-fullwidth">
<select id="lots-byMapId--mapId" name="mapId">
<% for (const map of maps) { %>
<option value="<%= map.mapId %>">
<%= map.mapName || "(No Name)" %>
</option>
<% } %>
</select>
</div>
</div>
<div class="control">
<button class="button is-small is-primary" type="submit">
Export
</button>
</div>
</div>
<h2 class="title is-5 is-marginless">
<%= configFunctions.getProperty("aliases.lots") %> By <%= configFunctions.getProperty("aliases.map") %>
</h2>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lots-byMapId--mapId">
<%= configFunctions.getProperty("aliases.map") %>
</label>
</div>
<div class="control is-expanded">
<div class="select is-small is-fullwidth">
<select id="lots-byMapId--mapId" name="mapId">
<% for (const map of maps) { %>
<option value="<%= map.mapId %>">
<%= map.mapName || "(No Name)" %>
</option>
<% } %>
</select>
</div>
</div>
<div class="control">
<button class="button is-small is-primary" type="submit">
Export
</button>
</div>
</div>
</div>
</form>
<form class="panel-block align-items-flex-start" method="get" action="<%= urlPrefix %>/reports/lots-byLotTypeId">
@ -220,7 +224,7 @@
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless"><%= configFunctions.getProperty("aliases.lots") %> By Type</h3>
<h2 class="title is-5 is-marginless"><%= configFunctions.getProperty("aliases.lots") %> By Type</h2>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lots-byLotTypeId--lotTypeId">
@ -254,7 +258,7 @@
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless"><%= configFunctions.getProperty("aliases.lots") %> By Status</h3>
<h2 class="title is-5 is-marginless"><%= configFunctions.getProperty("aliases.lots") %> By Status</h2>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lots-byLotStatusId--lotStatusId">
@ -286,18 +290,18 @@
<h1 class="title is-1"><%= configFunctions.getProperty("aliases.map") %> Reports</h1>
<div class="panel">
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/maps-formatted" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
<i class="fas fa-2x fa-file" aria-hidden="true"></i>
</span><br />
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless">Full <%= configFunctions.getProperty("aliases.map") %> List</h3>
<p>
All active <%= configFunctions.getProperty("aliases.maps").toLowerCase() %>.
</p>
</div>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
<i class="fas fa-2x fa-file" aria-hidden="true"></i>
</span><br />
<span class="tag is-info">CSV</span>
</div>
<div>
<h2 class="title is-5 is-marginless">Full <%= configFunctions.getProperty("aliases.map") %> List</h2>
<p>
All active <%= configFunctions.getProperty("aliases.maps").toLowerCase() %>.
</p>
</div>
</a>
</div>
</div>
@ -313,7 +317,7 @@
<div class="columns">
<div class="column">
<div class="panel">
<h3 class="panel-heading">Occupancy (<%= configFunctions.getProperty("aliases.occupancy") %>) Tables</h3>
<h2 class="panel-heading">Occupancy (<%= configFunctions.getProperty("aliases.occupancy") %>) Tables</h2>
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/lotOccupancies-all" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
@ -384,7 +388,7 @@
</div>
<div class="column">
<div class="panel">
<h3 class="panel-heading">Work Order Tables</h3>
<h2 class="panel-heading">Work Order Tables</h2>
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/workOrders-all" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
@ -431,7 +435,7 @@
</a>
</div>
<div class="panel">
<h3 class="panel-heading">Lot (<%= configFunctions.getProperty("aliases.lot") %>) Tables</h3>
<h2 class="panel-heading">Lot (<%= configFunctions.getProperty("aliases.lot") %>) Tables</h2>
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/maps-all" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
@ -491,7 +495,7 @@
<div class="columns">
<div class="column">
<div class="panel">
<h3 class="panel-heading">Fee Tables</h3>
<h2 class="panel-heading">Fee Tables</h2>
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/fees-all" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
@ -516,7 +520,7 @@
</a>
</div>
<div class="panel">
<h3 class="panel-heading">Lot (<%= configFunctions.getProperty("aliases.lot") %>) Tables</h3>
<h2 class="panel-heading">Lot (<%= configFunctions.getProperty("aliases.lot") %>) Tables</h2>
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/lotTypes-all" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
@ -554,7 +558,7 @@
</div>
<div class="column">
<div class="panel">
<h3 class="panel-heading">Occupancy (<%= configFunctions.getProperty("aliases.occupancy") %>) Tables</h3>
<h2 class="panel-heading">Occupancy (<%= configFunctions.getProperty("aliases.occupancy") %>) Tables</h2>
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/occupancyTypes-all" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
@ -590,7 +594,7 @@
</a>
</div>
<div class="panel">
<h3 class="panel-heading">Work Order Tables</h3>
<h2 class="panel-heading">Work Order Tables</h2>
<a class="panel-block align-items-flex-start" href="<%= urlPrefix %>/reports/workOrderTypes-all" download>
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">