|
Lines 6-18
describe("Reports home tabs", () => {
Link Here
|
| 6 |
cy.title().should("eq", "Koha staff interface"); |
6 |
cy.title().should("eq", "Koha staff interface"); |
| 7 |
cy.intercept( |
7 |
cy.intercept( |
| 8 |
"GET", |
8 |
"GET", |
| 9 |
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMModule", |
9 |
"/api/v1/erm/config", |
| 10 |
'{"value":"1"}' |
10 |
'{"settings":{"ERMModule":"1","ERMProviders":["local"]}}' |
| 11 |
); |
|
|
| 12 |
cy.intercept( |
| 13 |
"GET", |
| 14 |
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMProviders", |
| 15 |
'{"value":"local"}' |
| 16 |
); |
11 |
); |
| 17 |
|
12 |
|
| 18 |
const dataProvider = cy.get_usage_data_provider(); |
13 |
const dataProvider = cy.get_usage_data_provider(); |
|
Lines 63-75
describe("Saved reports", () => {
Link Here
|
| 63 |
cy.title().should("eq", "Koha staff interface"); |
58 |
cy.title().should("eq", "Koha staff interface"); |
| 64 |
cy.intercept( |
59 |
cy.intercept( |
| 65 |
"GET", |
60 |
"GET", |
| 66 |
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMModule", |
61 |
"/api/v1/erm/config", |
| 67 |
'{"value":"1"}' |
62 |
'{"settings":{"ERMModule":"1","ERMProviders":["local"]}}' |
| 68 |
); |
|
|
| 69 |
cy.intercept( |
| 70 |
"GET", |
| 71 |
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMProviders", |
| 72 |
'{"value":"local"}' |
| 73 |
); |
63 |
); |
| 74 |
|
64 |
|
| 75 |
const dataProvider = cy.get_usage_data_provider(); |
65 |
const dataProvider = cy.get_usage_data_provider(); |
|
Lines 132-144
describe("Custom reports", () => {
Link Here
|
| 132 |
cy.title().should("eq", "Koha staff interface"); |
122 |
cy.title().should("eq", "Koha staff interface"); |
| 133 |
cy.intercept( |
123 |
cy.intercept( |
| 134 |
"GET", |
124 |
"GET", |
| 135 |
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMModule", |
125 |
"/api/v1/erm/config", |
| 136 |
'{"value":"1"}' |
126 |
'{"settings":{"ERMModule":"1","ERMProviders":["local"]}}' |
| 137 |
); |
|
|
| 138 |
cy.intercept( |
| 139 |
"GET", |
| 140 |
"/cgi-bin/koha/svc/config/systempreferences/?pref=ERMProviders", |
| 141 |
'{"value":"local"}' |
| 142 |
); |
127 |
); |
| 143 |
|
128 |
|
| 144 |
const dataProviders = cy.get_multiple_providers(); |
129 |
const dataProviders = cy.get_multiple_providers(); |
|
Lines 210-232
describe("Custom reports", () => {
Link Here
|
| 210 |
}); |
195 |
}); |
| 211 |
|
196 |
|
| 212 |
it("Should limit metric types based on the report type(s) selected", () => { |
197 |
it("Should limit metric types based on the report type(s) selected", () => { |
| 213 |
cy.get("#metric_type .vs__search").should("be.disabled"); |
198 |
cy.get("#metric_types .vs__search").should("be.disabled"); |
| 214 |
|
199 |
|
| 215 |
cy.get("#report_type .vs__search").type("TR_J1" + "{enter}", { |
200 |
cy.get("#report_type .vs__search").type("TR_J1" + "{enter}", { |
| 216 |
force: true, |
201 |
force: true, |
| 217 |
}); |
202 |
}); |
| 218 |
cy.get("#metric_type").find(".vs__actions").click(); |
203 |
cy.get("#metric_types").find(".vs__actions").click(); |
| 219 |
cy.get("#metric_type").find("li").as("options"); |
204 |
cy.get("#metric_types").find("li").as("options"); |
| 220 |
cy.get("@options").should("have.length", 2); |
205 |
cy.get("@options").should("have.length", 2); |
| 221 |
|
206 |
|
| 222 |
cy.get("#report_type .vs__search").type("PR" + "{enter}", { |
207 |
cy.get("#report_type .vs__search").type("PR" + "{enter}", { |
| 223 |
force: true, |
208 |
force: true, |
| 224 |
}); |
209 |
}); |
| 225 |
cy.get("#metric_type").find(".vs__actions").click(); |
210 |
cy.get("#metric_types").find(".vs__actions").click(); |
| 226 |
cy.get("#metric_type").find("li").as("options"); |
211 |
cy.get("#metric_types").find("li").as("options"); |
| 227 |
cy.get("@options").should("have.length", 7); |
212 |
cy.get("@options").should("have.length", 7); |
| 228 |
}); |
213 |
}); |
| 229 |
|
214 |
|
|
|
215 |
it("Should allow access_type for certain report types", () => { |
| 216 |
cy.get("#access_types .vs__search").should("be.disabled"); |
| 217 |
|
| 218 |
cy.get("#report_type .vs__search").type("TR_J1" + "{enter}", { |
| 219 |
force: true, |
| 220 |
}); |
| 221 |
cy.get("#access_types").find(".vs__actions").click(); |
| 222 |
cy.get("#access_types .vs__search").should("be.disabled"); |
| 223 |
|
| 224 |
cy.get("#report_type .vs__search").type("TR_J3" + "{enter}", { |
| 225 |
force: true, |
| 226 |
}); |
| 227 |
cy.get("#access_types").find(".vs__actions").click(); |
| 228 |
cy.get("#access_types").find("li").as("options"); |
| 229 |
cy.get("@options").should("have.length", 2); |
| 230 |
}); |
| 231 |
|
| 230 |
it("Should disable the month selectors when a yearly report is selected", () => { |
232 |
it("Should disable the month selectors when a yearly report is selected", () => { |
| 231 |
cy.get("#interval .vs__search").type("By year" + "{enter}", { |
233 |
cy.get("#interval .vs__search").type("By year" + "{enter}", { |
| 232 |
force: true, |
234 |
force: true, |
|
Lines 235-238
describe("Custom reports", () => {
Link Here
|
| 235 |
cy.get("#start-month .vs__search").should("be.disabled"); |
237 |
cy.get("#start-month .vs__search").should("be.disabled"); |
| 236 |
cy.get("#end_month .vs__search").should("be.disabled"); |
238 |
cy.get("#end_month .vs__search").should("be.disabled"); |
| 237 |
}); |
239 |
}); |
|
|
240 |
|
| 241 |
it("Should correctly allow columns to be selected depending on the report type", () => { |
| 242 |
// Only the Platform columns should be disabled for TR reports |
| 243 |
cy.get("#report_type .vs__search").type("TR_J1" + "{enter}", { |
| 244 |
force: true, |
| 245 |
}); |
| 246 |
cy.get(".checkbox_options input:disabled").should("have.length", 1); |
| 247 |
|
| 248 |
// Only the Provider name and Platform columns should be enabled for PR reports |
| 249 |
cy.get("#report_type .vs__search").type("PR" + "{enter}", { |
| 250 |
force: true, |
| 251 |
}); |
| 252 |
cy.get(".checkbox_options input:disabled").should("have.length", 6); |
| 253 |
|
| 254 |
// Only the Provider name, Publisher, Platform, Publisher ID columns should be enabled for DR reports |
| 255 |
cy.get("#report_type .vs__search").type("DR" + "{enter}", { |
| 256 |
force: true, |
| 257 |
}); |
| 258 |
cy.get(".checkbox_options input:disabled").should("have.length", 4); |
| 259 |
|
| 260 |
// Only the Provider name, Publisher, Platform columns should be enabled for DR reports |
| 261 |
cy.get("#report_type .vs__search").type("IR" + "{enter}", { |
| 262 |
force: true, |
| 263 |
}); |
| 264 |
cy.get(".checkbox_options input:disabled").should("have.length", 5); |
| 265 |
}); |
| 266 |
|
| 267 |
it("Should correctly identify the months selected", () => { |
| 268 |
cy.get("#start_year").type("2022"); |
| 269 |
cy.get("#start-month .vs__search").type("June" + "{enter}", { |
| 270 |
force: true, |
| 271 |
}); |
| 272 |
cy.get("#end_year").type("2023"); |
| 273 |
cy.get("#end_month .vs__search").type("April" + "{enter}", { |
| 274 |
force: true, |
| 275 |
}); |
| 276 |
cy.get("#yearly_filter_required_no").click(); |
| 277 |
cy.get(".month_labels").should("have.length", 11); |
| 278 |
cy.get("#yearly_filter_required_yes").click(); |
| 279 |
cy.get(".month_labels").should("have.length", 0); |
| 280 |
}); |
| 281 |
|
| 282 |
it("Should correctly produce URL parameters based on selected inputs", () => { |
| 283 |
cy.get("#start_year").type("2022"); |
| 284 |
cy.get("#start-month .vs__search").type("June" + "{enter}", { |
| 285 |
force: true, |
| 286 |
}); |
| 287 |
cy.get("#end_year").type("2023"); |
| 288 |
cy.get("#end_month .vs__search").type("April" + "{enter}", { |
| 289 |
force: true, |
| 290 |
}); |
| 291 |
|
| 292 |
cy.get("#report_type .vs__search").type("PR" + "{enter}", { |
| 293 |
force: true, |
| 294 |
}); |
| 295 |
cy.get("#report_builder").contains("Submit").click(); |
| 296 |
cy.url().should( |
| 297 |
"include", |
| 298 |
"data={%22url%22:%22/api/v1/erm/eUsage/monthly_report/platform?q=[{%5C%22erm_usage_muses.year%5C%22:2022,%5C%22erm_usage_muses.report_type%5C%22:%5C%22PR%5C%22,%5C%22erm_usage_muses.month%5C%22:[6,7,8,9,10,11,12],%5C%22erm_usage_muses.metric_type%5C%22:[%5C%22Searches_Platform%5C%22,%5C%22Total_Item_Investigations%5C%22,%5C%22Total_Item_Requests%5C%22,%5C%22Unique_Item_Investigations%5C%22,%5C%22Unique_Item_Requests%5C%22,%5C%22Unique_Title_Investigations%5C%22,%5C%22Unique_Title_Requests%5C%22]},{%5C%22erm_usage_muses.year%5C%22:2023,%5C%22erm_usage_muses.report_type%5C%22:%5C%22PR%5C%22,%5C%22erm_usage_muses.month%5C%22:[1,2,3,4],%5C%22erm_usage_muses.metric_type%5C%22:[%5C%22Searches_Platform%5C%22,%5C%22Total_Item_Investigations%5C%22,%5C%22Total_Item_Requests%5C%22,%5C%22Unique_Item_Investigations%5C%22,%5C%22Unique_Item_Requests%5C%22,%5C%22Unique_Title_Investigations%5C%22,%5C%22Unique_Title_Requests%5C%22]}]%22,%22columns%22:[1],%22queryObject%22:{%22data_display%22:%22monthly%22,%22report_type%22:%22PR%22,%22metric_types%22:[%22Searches_Platform%22,%22Total_Item_Investigations%22,%22Total_Item_Requests%22,%22Unique_Item_Investigations%22,%22Unique_Item_Requests%22,%22Unique_Title_Investigations%22,%22Unique_Title_Requests%22],%22access_types%22:null,%22usage_data_providers%22:null,%22keywords%22:null,%22start_month%22:6,%22start_year%22:%222022%22,%22end_month%22:4,%22end_year%22:%222023%22},%22yearly_filter%22:true,%22type%22:%22monthly%22,%22tp_columns%22:{%222022%22:[{%22short%22:%22Jun%22,%22description%22:%22June%22,%22value%22:6,%22active%22:true},{%22short%22:%22Jul%22,%22description%22:%22July%22,%22value%22:7,%22active%22:true},{%22short%22:%22Aug%22,%22description%22:%22August%22,%22value%22:8,%22active%22:true},{%22short%22:%22Sep%22,%22description%22:%22September%22,%22value%22:9,%22active%22:true},{%22short%22:%22Oct%22,%22description%22:%22October%22,%22value%22:10,%22active%22:true},{%22short%22:%22Nov%22,%22description%22:%22November%22,%22value%22:11,%22active%22:true},{%22short%22:%22Dec%22,%22description%22:%22December%22,%22value%22:12,%22active%22:true}],%222023%22:[{%22short%22:%22Jan%22,%22description%22:%22January%22,%22value%22:1,%22active%22:true},{%22short%22:%22Feb%22,%22description%22:%22February%22,%22value%22:2,%22active%22:true},{%22short%22:%22Mar%22,%22description%22:%22March%22,%22value%22:3,%22active%22:true},{%22short%22:%22Apr%22,%22description%22:%22April%22,%22value%22:4,%22active%22:true}]}}" |
| 299 |
); |
| 300 |
}); |
| 301 |
|
| 302 |
it("Should show the Display by year filter when filter is required", () => { |
| 303 |
cy.get("#start_year").type("2022"); |
| 304 |
cy.get("#start-month .vs__search").type("June" + "{enter}", { |
| 305 |
force: true, |
| 306 |
}); |
| 307 |
cy.get("#end_year").type("2023"); |
| 308 |
cy.get("#end_month .vs__search").type("April" + "{enter}", { |
| 309 |
force: true, |
| 310 |
}); |
| 311 |
|
| 312 |
cy.get("#report_type .vs__search").type("PR" + "{enter}", { |
| 313 |
force: true, |
| 314 |
}); |
| 315 |
cy.get("#report_builder").contains("Submit").click(); |
| 316 |
cy.intercept("GET", "/api/v1/erm/eUsage/monthly_report/*").as( |
| 317 |
"reportRequest" |
| 318 |
); |
| 319 |
cy.wait("@reportRequest"); |
| 320 |
|
| 321 |
cy.get(".yearly_filter label").contains("Display by year"); |
| 322 |
// There should be two years - 2022 and 2023 as per the inputs above |
| 323 |
cy.get("#year_select").find(".vs__actions").click(); |
| 324 |
cy.get("#year_select").find("li").as("options"); |
| 325 |
cy.get("@options").should("have.length", 2); |
| 326 |
|
| 327 |
// Changing the year should re-trigger the AJAX request for that year |
| 328 |
cy.intercept("GET", "/api/v1/erm/eUsage/monthly_report/*").as( |
| 329 |
"filterRequest2022" |
| 330 |
); |
| 331 |
cy.get("#year_select .vs__search").type("2022" + "{enter}", { |
| 332 |
force: true, |
| 333 |
}); |
| 334 |
cy.get("#filter_table").click(); |
| 335 |
cy.wait("@filterRequest2022") |
| 336 |
.its("request.query.q") |
| 337 |
.should("include", "2022"); |
| 338 |
|
| 339 |
cy.intercept("GET", "/api/v1/erm/eUsage/monthly_report/*").as( |
| 340 |
"filterRequest2023" |
| 341 |
); |
| 342 |
cy.get("#year_select .vs__search").type("2023" + "{enter}", { |
| 343 |
force: true, |
| 344 |
}); |
| 345 |
cy.get("#filter_table").click(); |
| 346 |
cy.wait("@filterRequest2023") |
| 347 |
.its("request.query.q") |
| 348 |
.should("include", "2023"); |
| 349 |
}); |
| 238 |
}); |
350 |
}); |
| 239 |
- |
|
|