Bug 34587: Cypress update

Update the cypress tests to reflect recent changes

Signed-off-by: Jessica Zairo <jzairo@bywatersolutions.com>
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Matt Blenkinsop 2023-07-26 13:26:03 +00:00 committed by Tomas Cohen Arazi
parent 13356ae74e
commit cbe5e86fe8
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
4 changed files with 212 additions and 21 deletions

View File

@ -122,7 +122,8 @@ export default {
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return row.begin_date
const date = getEarliestDate(row, "TR")
return date
},
},
{
@ -141,7 +142,8 @@ export default {
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return row.begin_date
const date = getEarliestDate(row, "PR")
return date
},
},
{
@ -160,7 +162,8 @@ export default {
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return row.begin_date
const date = getEarliestDate(row, "DR")
return date
},
},
{
@ -169,7 +172,7 @@ export default {
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
const date = getLatestDate(row, "PR")
const date = getLatestDate(row, "DR")
return date
},
},

View File

@ -54,7 +54,6 @@ describe("Data provider CRUD operations", () => {
"X-Total-Count": "1",
},
})
cy.intercept("GET", "/api/v1/erm/usage_data_providers/*", dataProvider)
cy.visit("/cgi-bin/koha/erm/eusage/usage_data_providers")
cy.get("#usage_data_providers_list").contains("Showing 1 to 1 of 1 entries")
})
@ -526,4 +525,88 @@ describe("Data provider tab options", () => {
cy.get("#usage_data_providerstabs").contains("Import logs").click()
cy.get("#counter_logs_list").contains("Showing 1 to 1 of 1 entries")
})
})
})
describe("Data providers action buttons", () => {
beforeEach(() => {
cy.login()
cy.title().should("eq", "Koha staff interface")
cy.intercept(
"GET",
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMModule",
'{"value":"1"}'
)
cy.intercept(
"GET",
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMProviders",
'{"value":"local"}'
)
})
it("Should queue a harvest background job", () => {
const dataProvider = cy.get_usage_data_provider()
const dataProviders = [dataProvider]
cy.intercept("GET", "/api/v1/erm/usage_data_providers*", {
statusCode: 200,
body: dataProviders,
headers: {
"X-Base-Total-Count": "1",
"X-Total-Count": "1",
},
})
cy.intercept("GET", "/api/v1/erm/usage_data_providers/*", dataProvider)
cy.visit("/cgi-bin/koha/erm/eusage/usage_data_providers")
cy.get("#usage_data_providers_list table tbody tr:first").contains("Run now").click()
cy.get(".modal_centered p").contains(dataProvider.name)
cy.intercept("GET", "/api/v1/erm/usage_data_providers/1/run*", {
statusCode: 200,
body: { jobs: [
{
report_type: 'TR_J1',
job_id: 1
}
]},
headers: {
"X-Base-Total-Count": "1",
"X-Total-Count": "1",
},
})
cy.get('#accept_modal').click()
cy.get('#erm > div > div.main.container-fluid > div > div.col-sm-10.col-sm-push-2 > main > div.dialog.message > li')
.contains("Harvest background job for report type TR_J1 has started, click here to check its progress.")
})
it("Should test a provider's SUSHI connection", () => {
const dataProvider = cy.get_usage_data_provider()
const dataProviders = [dataProvider]
cy.intercept("GET", "/api/v1/erm/usage_data_providers*", {
statusCode: 200,
body: dataProviders,
headers: {
"X-Base-Total-Count": "1",
"X-Total-Count": "1",
},
})
cy.intercept("GET", "/api/v1/erm/usage_data_providers/*", dataProvider)
cy.visit("/cgi-bin/koha/erm/eusage/usage_data_providers")
cy.intercept("GET", "/api/v1/erm/usage_data_providers/1/test_connection", {
statusCode: 200,
body: 1,
headers: {
"X-Base-Total-Count": "1",
"X-Total-Count": "1",
},
}).as("test-connection")
cy.get("#usage_data_providers_list table tbody tr:first").contains("Test").click()
cy.wait("@test-connection")
cy.get('#erm > div > div.main.container-fluid > div > div.col-sm-10.col-sm-push-2 > main > div.dialog.message')
.contains("Harvester connection was successful for usage data provider " + dataProvider.name)
})
})

View File

@ -1,14 +1,5 @@
import { mount } from "@cypress/vue"
const dayjs = require("dayjs")
const dates = {
today_iso: dayjs().format("YYYY-MM-DD"),
today_us: dayjs().format("MM/DD/YYYY"),
tomorrow_iso: dayjs().add(1, "day").format("YYYY-MM-DD"),
tomorrow_us: dayjs().add(1, "day").format("MM/DD/YYYY"),
}
describe("Reports home tabs", () => {
beforeEach(() => {
cy.login()
@ -145,10 +136,9 @@ describe("Custom reports", () => {
'{"value":"local"}'
)
const dataProvider = cy.get_usage_data_provider()
const dataProviders = [dataProvider]
const dataProviders = cy.get_multiple_providers()
const defaultReport = cy.get_default_report()
const defaulReports = [defaultReport]
const defaultReports = [defaultReport]
cy.intercept("GET", "/api/v1/erm/usage_data_providers*", {
statusCode: 200,
@ -160,7 +150,7 @@ describe("Custom reports", () => {
})
cy.intercept("GET", "/api/v1/erm/default_usage_reports*", {
statusCode: 200,
body: defaulReports,
body: defaultReports,
headers: {
"X-Base-Total-Count": "1",
"X-Total-Count": "1",
@ -168,9 +158,81 @@ describe("Custom reports", () => {
})
cy.visit("/cgi-bin/koha/erm/eusage/reports")
cy.get("#usage_data_providerstabs").contains("Create report").click()
})
it("Should offer options to create and display custom reports", () => {
// ToDo
it("Should limit report types based on the provider(s) selected", () => {
const dataProviders = cy.get_multiple_providers()
cy.get('#report_type').find('.vs__actions').click()
cy.get('#report_type').find('li').as('options')
cy.get('@options').should('have.length', 16)
cy.get("#usage_data_provider .vs__search").type(
dataProviders[0].name + "{enter}",
{ force: true }
)
cy.get('#report_type').find('.vs__actions').click()
cy.get('#report_type').find('li').as('options')
cy.get('@options').should('have.length', 1)
cy.get("#usage_data_provider .vs__search").type(
dataProviders[1].name + "{enter}",
{ force: true }
)
cy.get('#report_type').find('.vs__actions').click()
cy.get('#report_type').find('li').as('options')
cy.get('@options').should('have.length', 3)
})
it("Should limit data providers based on the report type(s) selected", () => {
cy.get('#usage_data_provider').find('.vs__actions').click()
cy.get('#usage_data_provider').find('li').as('options')
cy.get('@options').should('have.length', 2)
cy.get("#report_type .vs__search").type(
"TR_J2" + "{enter}",
{ force: true }
)
cy.get('#usage_data_provider').find('.vs__actions').click()
cy.get('#usage_data_provider').find('li').as('options')
cy.get('@options').should('have.length', 1)
cy.get("#report_type .vs__search").type(
"TR_J1" + "{enter}",
{ force: true }
)
cy.get('#usage_data_provider').find('.vs__actions').click()
cy.get('#usage_data_provider').find('li').as('options')
cy.get('@options').should('have.length', 2)
})
it("Should limit metric types based on the report type(s) selected", () => {
cy.get("#metric_type .vs__search").should('be.disabled')
cy.get("#report_type .vs__search").type(
"TR_J1" + "{enter}",
{ force: true }
)
cy.get('#metric_type').find('.vs__actions').click()
cy.get('#metric_type').find('li').as('options')
cy.get('@options').should('have.length', 2)
cy.get("#report_type .vs__search").type(
"PR" + "{enter}",
{ force: true }
)
cy.get('#metric_type').find('.vs__actions').click()
cy.get('#metric_type').find('li').as('options')
cy.get('@options').should('have.length', 7)
})
it("Should disable the month selectors when a yearly report is selected", () => {
cy.get("#interval .vs__search").type(
"By year" + "{enter}",
{ force: true }
)
cy.get("#start-month .vs__search").should('be.disabled')
cy.get("#end_month .vs__search").should('be.disabled')
})
})

View File

@ -387,3 +387,46 @@ cy.get_default_report = () => {
"report_url_params": JSON.stringify(params)
}
}
cy.get_multiple_providers = () => {
return [
{
"active": 1,
"aggregator": "test_aggregator",
"api_key": '12345',
"begin_date": dates['today_iso'],
"customer_id": "12345",
"description": "A data provider for cypress testing",
"end_date": dates['tomorrow_iso'],
"erm_usage_data_provider_id": 1,
"method": "test",
"name": "Cypress test provider",
"report_release": "test_report_release",
"report_types": "TR_J1;",
"requestor_email": "test_requestor_email",
"requestor_id": "12345",
"requestor_name": "test_requestor_name",
"service_type": "test_service_type",
"service_url": "www.url.com",
},
{
"active": 1,
"aggregator": "test_aggregator",
"api_key": '12345',
"begin_date": dates['today_iso'],
"customer_id": "12345",
"description": "A second provider for reports testing",
"end_date": dates['tomorrow_iso'],
"erm_usage_data_provider_id": 2,
"method": "test",
"name": "Second test provider",
"report_release": "test_report_release",
"report_types": "TR_J1;TR_J2;TR_J3",
"requestor_email": "test_requestor_email",
"requestor_id": "12345",
"requestor_name": "test_requestor_name",
"service_type": "test_service_type",
"service_url": "www.url.com",
},
]
}