serialization.page.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { browser, $ } from "@wdio/globals";
  2. class SerializationPage {
  3. get sendBtn() {
  4. return $("button[id='send-btn']");
  5. }
  6. get checkBtn() {
  7. return $("button[id='check-btn']");
  8. }
  9. get connectBtn() {
  10. return $("button[id='connect-btn']");
  11. }
  12. get receiverId() {
  13. return $("input[id='receiver-id']");
  14. }
  15. get messages() {
  16. return $("div[id='messages']");
  17. }
  18. get errorMessage() {
  19. return $("div[id='error-message']");
  20. }
  21. get result() {
  22. return $("div[id='result']");
  23. }
  24. waitForMessage(right: string) {
  25. return browser.waitUntil(
  26. async () => {
  27. const messages = await this.messages.getText();
  28. return messages.startsWith(right);
  29. },
  30. { timeoutMsg: `Expected message to start with ${right}`, timeout: 10000 },
  31. );
  32. }
  33. async open(testFile: string, json: boolean = false) {
  34. await browser.switchWindow("Alice");
  35. await browser.url(
  36. `/e2e/datachannel/serialization${
  37. json ? "_json" : ""
  38. }.html?test=${testFile}#Alice`,
  39. );
  40. await this.connectBtn.waitForEnabled();
  41. await browser.switchWindow("Bob");
  42. await browser.url(
  43. `/e2e/datachannel/serialization${
  44. json ? "_json" : ""
  45. }.html?test=${testFile}#Bob`,
  46. );
  47. await this.connectBtn.waitForEnabled();
  48. }
  49. async init() {
  50. await browser.url("/e2e/alice.html");
  51. await browser.waitUntil(async () => {
  52. const title = await browser.getTitle();
  53. return title === "Alice";
  54. });
  55. await browser.newWindow("/e2e/bob.html");
  56. await browser.waitUntil(async () => {
  57. const title = await browser.getTitle();
  58. return title === "Bob";
  59. });
  60. }
  61. }
  62. export default new SerializationPage();