# CollaborationPage

**Kind:** Class

**Source:** [`atloria-monorepo/apps/web-e2e/src/pages/collaboration.page.ts`](https://github.com/sherkety/atloria/blob/main/atloria-monorepo/apps/web-e2e/src/pages/collaboration.page.ts#L7)

Collaboration feature page object

**Extends:** `BasePage`

## Methods

| Method | Signature | Returns |
|---|---|---|
| `goto` | `goto()` | `Promise<void>` |
| `getUserCursors` | `getUserCursors()` | `Locator` |
| `getCursorCount` | `getCursorCount()` | `Promise<number>` |
| `getPresenceIndicators` | `getPresenceIndicators()` | `Locator` |
| `getCollaboratorCount` | `getCollaboratorCount()` | `Promise<number>` |
| `getConnectionStatus` | `getConnectionStatus()` | `Promise<'connected' | 'connecting' | 'disconnected'>` |
| `waitForConnection` | `waitForConnection()` | `Promise<void>` |
| `getUserByName` | `getUserByName(name: string)` | `Locator` |
| `isUserPresent` | `isUserPresent(name: string)` | `Promise<boolean>` |
| `openShareDialog` | `openShareDialog()` | `Promise<void>` |
| `getCursorPosition` | `getCursorPosition(userName: string)` | `Promise<{ x: number; y: number } | null>` |
| `getCollaboratorColor` | `getCollaboratorColor(userName: string)` | `Promise<string | null>` |
| `isStatusBarVisible` | `isStatusBarVisible()` | `Promise<boolean>` |
| `getStatusBarText` | `getStatusBarText()` | `Promise<string>` |
| `simulateDisconnection` | `simulateDisconnection()` | `Promise<void>` |
| `waitForReconnection` | `waitForReconnection()` | `Promise<void>` |

## Properties

| Property | Type |
|---|---|
| `statusBar` | `Locator` |
| `userCursors` | `Locator` |
| `presenceIndicators` | `Locator` |
| `connectionStatus` | `Locator` |
| `userList` | `Locator` |
| `shareButton` | `Locator` |

## Where it refuses work

- `CollaborationPage` stops the work with an early return when `text?.toLowerCase().includes('connected')`.
- `CollaborationPage` stops the work with an early return when `text?.toLowerCase().includes('connecting')`.
- `CollaborationPage` stops the work with an early return when `!(await cursor.isVisible())`.
- `CollaborationPage` stops the work with an early return when `!box`.
- `CollaborationPage` stops the work with an early return when `!(await indicator.isVisible())`.
