serialization.page.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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, serialization: string) {
  34. await browser.switchWindow("Alice");
  35. await browser.url(
  36. `/e2e/datachannel/serialization.html?testfile=${testFile}&serialization=${serialization}#Alice`,
  37. );
  38. await this.connectBtn.waitForEnabled();
  39. await browser.switchWindow("Bob");
  40. await browser.url(
  41. `/e2e/datachannel/serialization.html?testfile=${testFile}#Bob`,
  42. );
  43. await this.connectBtn.waitForEnabled();
  44. }
  45. async init() {
  46. await browser.url("/e2e/alice.html");
  47. await browser.waitUntil(async () => {
  48. const title = await browser.getTitle();
  49. return title === "Alice";
  50. });
  51. await browser.newWindow("/e2e/bob.html");
  52. await browser.waitUntil(async () => {
  53. const title = await browser.getTitle();
  54. return title === "Bob";
  55. });
  56. }
  57. }
  58. export default new SerializationPage();