1
0
قرینه از https://github.com/matomo-org/matomo.git synced 2025-08-22 15:07:44 +00:00
Files
matomo/plugins/Live/tests/UI/Live_spec.js
Michal Kleiner 2707d3987b Add second set of data table action icons below the report title (#22827)
* Move top actions below the title
* Ensure search is functional and correctly focusing used input
* Hide top controls on dashboard
* Hide top controls when report doesn't have data
* Adjust spacing of top controls to be in line with bottom controls
* Update UI test screenshots
* Build vue files
* Move mouse out of view for UI test screenshot consistency

---------

Co-authored-by: Stefan Giehl <stefan@matomo.org>
2025-01-15 04:37:06 +13:00

161 خطوط
6.7 KiB
JavaScript

/*!
* Matomo - free/libre analytics platform
*
* Screenshot integration tests.
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
describe("Live", function () {
this.fixture = "Piwik\\Plugins\\Live\\tests\\Fixtures\\VisitsWithAllActionsAndDevices";
after(function () {
if (testEnvironment.configOverride.Deletelogs) {
delete testEnvironment.configOverride.Deletelogs;
testEnvironment.save();
}
});
it('should show visitor log', async function() {
await page.goto("?module=CoreHome&action=index&idSite=1&period=year&date=2010-01-03#?idSite=1&period=year&date=2010-01-03&category=General_Visitors&subcategory=Live_VisitorLog");
await page.waitForNetworkIdle();
await page.waitForSelector('.dataTableVizVisitorLog');
var report = await page.$('.reporting-page');
expect(await report.screenshot()).to.matchImage('visitor_log');
});
it('should expand grouped actions', async function() {
await page.evaluate(() => $('.dataTableVizVisitorLog .repeat.icon-refresh').click());
await page.mouse.move(-10, -10);
const report = await page.jQuery('.dataTableVizVisitorLog .card.row:eq(1)');
expect(await report.screenshot()).to.matchImage('visitor_log_expand_actions');
});
it('should expand collapsed pageview actions', async function() {
const link = await page.jQuery('.dataTableVizVisitorLog .card.row:eq(1) .show-more-actions:visible');
await link.click();
await page.mouse.move(-10, -10);
const report = await page.jQuery('.dataTableVizVisitorLog .card.row:eq(1)');
expect(await report.screenshot()).to.matchImage('visitor_log_expand_pageview_actions');
});
it('should expand collapsed content actions', async function() {
// collapse previously expanded section
const prevlink = await page.jQuery('.dataTableVizVisitorLog .card.row:eq(1) .show-less-actions:visible');
await prevlink.click();
const link = await page.jQuery('.dataTableVizVisitorLog .card.row:eq(2) .collapsed-contents:visible');
await link.click();
await page.mouse.move(-10, -10);
const report = await page.jQuery('.dataTableVizVisitorLog .card.row:eq(2)');
expect(await report.screenshot()).to.matchImage('visitor_log_expand_content_actions');
});
it('should show visitor profile', async function() {
// collapse previously expanded section
const prevlink = await page.jQuery('.dataTableVizVisitorLog .card.row:eq(2) .collapsed-contents:visible');
await prevlink.click();
await (await page.jQuery('.card:eq(0) .visitor-log-visitor-profile-link')).click();
await page.waitForSelector('.ui-dialog');
await page.waitForNetworkIdle();
var dialog = await page.$('.ui-dialog');
expect(await dialog.screenshot()).to.matchImage('visitor_profile');
});
it('should load additional visits in visitor log', async function() {
await page.click('.visitor-profile-more-info a');
await page.waitForNetworkIdle();
var dialog = await page.$('.ui-dialog');
expect(await dialog.screenshot()).to.matchImage('visitor_profile_more_visits');
});
it('should hide all action details', async function() {
await (await page.jQuery('.visitor-profile-toggle-actions')).click();
await page.mouse.move(0, 0);
var dialog = await page.$('.ui-dialog');
expect(await dialog.screenshot()).to.matchImage('visitor_profile_actions_hidden');
});
it('should show visit details', async function() {
await (await page.jQuery('.visitor-profile-visit-title:eq(0)')).click();
var dialog = await page.$('.ui-dialog');
expect(await dialog.screenshot()).to.matchImage('visitor_profile_visit_details');
});
it('should show action details', async function() {
await page.click('.visitor-profile-visits li:first-child .visitor-profile-show-actions');
await page.waitForNetworkIdle();
await page.mouse.move(-10, -10);
var dialog = await page.$('.ui-dialog');
expect(await dialog.screenshot()).to.matchImage('visitor_profile_action_details');
});
it('should show action tooltip', async function() {
await page.hover('.visitor-profile-visits li:first-child .visitor-profile-actions .action:first-child');
await page.waitForSelector('.ui-tooltip', {visible: true, timeout: 250});
expect(await page.screenshotSelector('.ui-tooltip')).to.matchImage('visitor_profile_action_tooltip');
});
it('should show limited profile message', async function () {
// Limit number of shown visits to 5
testEnvironment.overrideConfig('General', 'live_visitor_profile_max_visits_to_aggregate', 5);
testEnvironment.save();
await page.goto("?module=CoreHome&action=index&idSite=1&period=year&date=2010-01-03#?idSite=1&period=year&date=2010-01-03&category=General_Visitors&subcategory=Live_VisitorLog");
await (await page.jQuery('.card:eq(0) .visitor-log-visitor-profile-link')).click();
await page.waitForSelector('.ui-dialog', {visible: true});
await page.waitForNetworkIdle();
await page.mouse.move(-10, -10);
var dialog = await page.$('.ui-dialog');
expect(await dialog.screenshot()).to.matchImage('visitor_profile_limited');
});
it('should show visitor log next page', async function() {
await page.goto("?module=CoreHome&action=index&idSite=1&period=year&date=2010-01-03#?idSite=1&period=year&date=2010-01-03&category=General_Visitors&subcategory=Live_VisitorLog");
await page.waitForNetworkIdle();
await page.waitForSelector('.dataTableVizVisitorLog');
const link = await page.jQuery('.dataTableNext');
await link.click();
await page.waitForNetworkIdle();
var report = await page.$('.reporting-page');
expect(await report.screenshot()).to.matchImage('visitor_log_page_next');
});
it('should show visitor log purge message when purged and no data', async function() {
testEnvironment.overrideConfig('Deletelogs', 'delete_logs_enable', 1);
testEnvironment.overrideConfig('Deletelogs', 'delete_logs_older_than', 4000);
testEnvironment.save();
await page.goto("?module=CoreHome&action=index&idSite=1&period=year&date=2005-01-03#?idSite=1&period=year&date=2005-01-03&category=General_Visitors&subcategory=Live_VisitorLog");
await page.waitForNetworkIdle();
var report = await page.$('.reporting-page');
expect(await report.screenshot()).to.matchImage('visitor_log_purged');
});
});