bigbluebutton-Github/bigbluebutton-tests/playwright/whiteboard/whiteboard.spec.js

194 lines
9.4 KiB
JavaScript
Raw Normal View History

2021-11-23 05:51:16 +08:00
const { test } = require('@playwright/test');
const { Draw } = require('./draw');
2022-08-30 04:07:44 +08:00
const { DrawRectangle } = require('./drawRectangle');
const { DrawEllipse } = require('./drawEllipse');
const { DrawTriangle } = require('./drawTriangle');
const { DrawLine } = require('./drawLine');
const { DrawPencil } = require('./drawPencil');
const { DrawText } = require('./drawText');
const { DrawStickyNote } = require('./drawStickyNote');
2023-03-08 23:33:05 +08:00
const { Pan } = require('./pan');
const { Eraser } = require('./eraser');
const { DrawArrow } = require('./drawArrow');
2021-11-23 05:51:16 +08:00
const { MultiUsers } = require('../user/multiusers');
2023-07-08 01:05:06 +08:00
const { encodeCustomParams } = require('../parameters/util');
2023-03-08 23:33:05 +08:00
const { PARAMETER_HIDE_PRESENTATION_TOAST } = require('../core/constants');
2023-04-12 21:29:25 +08:00
const { DeleteDrawing } = require('./deleteDrawing');
const { UndoDrawing } = require('./undoDraw');
const { RedoDrawing } = require('./redoDraw');
const { ChangeStyles } = require('./changeStyles');
const { RealTimeText } = require('./realTimeText');
2023-08-17 22:14:08 +08:00
const { ShapeOptions } = require('./shapeOptions');
2023-03-08 23:33:05 +08:00
const hidePresentationToast = encodeCustomParams(PARAMETER_HIDE_PRESENTATION_TOAST);
2021-11-23 05:51:16 +08:00
2022-06-08 02:52:22 +08:00
test.describe.parallel('Whiteboard @ci', () => {
test('Draw rectangle @flaky', async ({ browser, page }) => {
2021-11-23 05:51:16 +08:00
const draw = new Draw(browser, page);
await draw.init(true, true);
await draw.test();
2023-08-08 01:08:26 +08:00
});
2021-11-23 05:51:16 +08:00
2023-09-26 08:52:27 +08:00
test('Give Additional Whiteboard Access', async ({ browser, context, page }) => {
const multiusers = new MultiUsers(browser, context);
await multiusers.initPages(page);
2021-11-23 05:51:16 +08:00
await multiusers.whiteboardAccess();
});
2021-12-04 01:01:36 +08:00
});
2022-08-30 04:07:44 +08:00
2024-02-21 00:51:19 +08:00
test.describe.parallel.only('Whiteboard tools - visual regression', () => {
2022-08-30 04:07:44 +08:00
test.beforeEach(({ browserName }) => {
test.skip(browserName !== 'chromium',
'Drawing visual regression tests are enabled for Chromium only');
});
test('Draw rectangle', async ({ browser, context, page }) => {
const drawRectangle = new DrawRectangle(browser, context);
2023-08-23 04:25:50 +08:00
await drawRectangle.initModPage(page, true, { customMeetingId: 'draw_rectangle_meeting', createParameter: hidePresentationToast });
await drawRectangle.initUserPage(true, context, { createParameter: hidePresentationToast });
2022-08-30 04:07:44 +08:00
await drawRectangle.test();
});
test('Draw ellipse', async ({ browser, context, page }) => {
const drawEllipse = new DrawEllipse(browser, context);
2023-08-23 04:25:50 +08:00
await drawEllipse.initModPage(page, true, { customMeetingId: 'draw_ellipse_meeting', createParameter: hidePresentationToast });
await drawEllipse.initUserPage(true, context, { createParameter: hidePresentationToast });
2022-08-30 04:07:44 +08:00
await drawEllipse.test();
});
2024-02-21 00:51:19 +08:00
test.only('Draw triangle', async ({ browser, context, page }) => {
2022-08-30 04:07:44 +08:00
const drawTriangle = new DrawTriangle(browser, context);
2023-08-23 04:25:50 +08:00
await drawTriangle.initModPage(page, true, { customMeetingId: 'draw_triangle_meeting', createParameter: hidePresentationToast });
await drawTriangle.initUserPage(true, context, { createParameter: hidePresentationToast });
2022-08-30 04:07:44 +08:00
await drawTriangle.test();
});
2024-02-21 00:51:19 +08:00
test.only('Draw line', async ({ browser, context, page }) => {
2022-11-26 03:54:32 +08:00
const drawLine = new DrawLine(browser, context);
2023-08-23 04:25:50 +08:00
await drawLine.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await drawLine.initUserPage(true, context, { createParameter: hidePresentationToast });
2022-08-30 04:07:44 +08:00
await drawLine.test();
});
2024-02-21 00:51:19 +08:00
test.only('Draw with pencil', async ({ browser, context, page }) => {
const drawPencil = new DrawPencil(browser, context);
2023-08-23 04:25:50 +08:00
await drawPencil.initModPage(page, true, { customMeetingId: 'draw_pencil_meeting', createParameter: hidePresentationToast });
await drawPencil.initUserPage(true, context, { createParameter: hidePresentationToast });
await drawPencil.test();
});
2024-02-21 00:51:19 +08:00
test.only('Type text', async ({ browser, context, page }) => {
const drawText = new DrawText(browser, context);
2023-08-23 04:25:50 +08:00
await drawText.initModPage(page, true, { customMeetingId: 'draw_text_meeting', createParameter: hidePresentationToast });
await drawText.initUserPage(true, context, { createParameter: hidePresentationToast });
await drawText.test();
});
test('Create sticky note', async ({ browser, context, page }) => {
const drawStickyNote = new DrawStickyNote(browser, context);
2023-08-23 04:25:50 +08:00
await drawStickyNote.initModPage(page, true, { customMeetingId: 'draw_sticky_meeting', createParameter: hidePresentationToast });
await drawStickyNote.initUserPage(true, context, { createParameter: hidePresentationToast });
await drawStickyNote.test();
});
2023-03-08 23:33:05 +08:00
2024-02-22 02:13:10 +08:00
test.only('Pan', async ({ browser, context, page }) => {
2023-03-08 23:33:05 +08:00
const pan = new Pan(browser, context);
2023-08-23 04:25:50 +08:00
await pan.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await pan.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-03-08 23:33:05 +08:00
await pan.test();
});
2024-02-22 02:13:10 +08:00
test.only('Eraser', async ({ browser, context, page }) => {
2023-03-08 23:33:05 +08:00
const eraser = new Eraser(browser, context);
2023-08-23 04:25:50 +08:00
await eraser.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await eraser.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-03-08 23:33:05 +08:00
await eraser.test();
});
2024-02-23 04:02:55 +08:00
test.only('Draw arrow', async ({ browser, context, page }) => {
2023-03-08 23:33:05 +08:00
const drawArrow = new DrawArrow(browser, context);
2023-08-23 04:25:50 +08:00
await drawArrow.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await drawArrow.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-03-08 23:33:05 +08:00
await drawArrow.test();
});
2023-04-12 21:29:25 +08:00
2024-02-27 22:45:04 +08:00
test('Delete drawing', async ({ browser, context, page }) => {
2023-04-12 21:29:25 +08:00
const deleteDrawing = new DeleteDrawing(browser, context);
2023-08-23 04:25:50 +08:00
await deleteDrawing.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await deleteDrawing.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await deleteDrawing.test();
});
test('Undo drawing', async ({ browser, context, page }) => {
const undoDrawing = new UndoDrawing(browser, context);
2023-08-23 04:25:50 +08:00
await undoDrawing.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await undoDrawing.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await undoDrawing.test();
});
test('Redo drawing', async ({ browser, context, page }) => {
const redoDrawing = new RedoDrawing(browser, context);
2023-08-23 04:25:50 +08:00
await redoDrawing.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await redoDrawing.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await redoDrawing.test();
});
2024-02-27 22:45:04 +08:00
test.only('Change color', async ({ browser, context, page }) => {
2023-04-12 21:29:25 +08:00
const changeColor = new ChangeStyles(browser, context);
2023-08-23 04:25:50 +08:00
await changeColor.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await changeColor.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await changeColor.changingColor();
});
test('Fill drawing', async ({ browser, context, page }) => {
const fillDrawing = new ChangeStyles(browser, context);
2023-08-23 04:25:50 +08:00
await fillDrawing.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await fillDrawing.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await fillDrawing.fillDrawing();
});
test('Dash drawing', async ({ browser, context, page }) => {
const dashDrawing = new ChangeStyles(browser, context);
2023-08-23 04:25:50 +08:00
await dashDrawing.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await dashDrawing.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await dashDrawing.dashDrawing();
});
test('Size drawing', async ({ browser, context, page }) => {
const sizeDrawing = new ChangeStyles(browser, context);
2023-08-23 04:25:50 +08:00
await sizeDrawing.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await sizeDrawing.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await sizeDrawing.sizeDrawing();
});
test('Real time text typing', async ({ browser, context, page }) => {
const realTimeText = new RealTimeText(browser, context);
2023-08-23 04:25:50 +08:00
await realTimeText.initModPage(page, true, { customMeetingId: 'draw_line_meeting', createParameter: hidePresentationToast });
await realTimeText.initUserPage(true, context, { createParameter: hidePresentationToast });
2023-04-12 21:29:25 +08:00
await realTimeText.realTimeTextTyping();
});
2023-08-17 22:14:08 +08:00
test.describe.parallel('Shape Options', () => {
test('Duplicate', async ({ browser, context, page }) => {
const shapeOptions = new ShapeOptions(browser, context);
await shapeOptions.initModPage(page, true);
await shapeOptions.initUserPage(true, context);
await shapeOptions.duplicate();
});
test('Rotate', async ({ browser, context, page }) => {
const shapeOptions = new ShapeOptions(browser, context);
await shapeOptions.initModPage(page, true);
await shapeOptions.initUserPage(true, context);
await shapeOptions.rotate();
});
test('Move Shape Backward/Forward', async ({ browser, context, page }) => {
const shapeOptions = new ShapeOptions(browser, context);
await shapeOptions.initModPage(page, true);
await shapeOptions.initUserPage(true, context);
await shapeOptions.movingShape();
});
});
2022-08-30 04:07:44 +08:00
});