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