Skip to content

Commit 4385c8f

Browse files
authored
docs: saveState improvements
1 parent d5c6316 commit 4385c8f

File tree

8 files changed

+264
-15
lines changed

8 files changed

+264
-15
lines changed

docs/commands/browser/getState.mdx

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import Version from "../../_partials/specs/version.mdx";
2+
3+
# getState
4+
5+
<Version version="8.40.0" />
6+
7+
## Overview {#overview}
8+
9+
A browser command that restores the session state from a file which previously saved using the [saveState][saveState] command.
10+
11+
## Usage {#usage}
12+
13+
```typescript
14+
import type { SaveStateData } from "testplane";
15+
16+
const stateDump: SaveStateData = await browser.getState({
17+
path: "./stateDump.json",
18+
});
19+
```
20+
21+
## Command Parameters {#parameters}
22+
23+
<table>
24+
<thead>
25+
<tr>
26+
<td>**Name**</td>
27+
<td>**Type**</td>
28+
<td>**Default**</td>
29+
<td>**Description**</td>
30+
</tr>
31+
</thead>
32+
<tbody>
33+
<tr>
34+
<td>path</td>
35+
<td>`string`</td>
36+
<td>`-`</td>
37+
<td>Path to file with state.</td>
38+
</tr>
39+
</tbody>
40+
</table>
41+
42+
## Usage Examples {#examples}
43+
44+
Save state in file.
45+
46+
```typescript
47+
it("test", async ({ browser }) => {
48+
const stateData = await browser.getState({
49+
path: "./stateDump.json",
50+
});
51+
});
52+
```
53+
54+
## Related Commands {#related}
55+
56+
- [saveState][saveState]
57+
58+
[saveState]: ../saveState

docs/commands/browser/restoreState.mdx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ await browser.restoreState({
8484
Function for filtering cookies, receiving cookie objects, and returning boolean.
8585
</td>
8686
</tr>
87+
<tr>
88+
<td>refresh</td>
89+
<td>`boolean`</td>
90+
<td>`true`</td>
91+
<td>Refresh page after restore state.</td>
92+
</tr>
8793
</tbody>
8894
</table>
8995

@@ -99,9 +105,6 @@ it("test", async ({ browser }) => {
99105
path: "./stateDump.json",
100106
cookieFilter: ({ domain }) => domain === ".example.com",
101107
});
102-
103-
// Reload page for see auth result.
104-
await browser.refresh();
105108
});
106109
```
107110

docs/commands/browser/saveState.mdx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ const stateDump: SaveStateData = await browser.saveState({
7171
Function for filtering cookies, receiving cookie objects, and returning boolean.
7272
</td>
7373
</tr>
74+
<tr>
75+
<td>keepFile</td>
76+
<td>`boolean`</td>
77+
<td>`false`</td>
78+
<td>
79+
Keep the state file after tests finish (it is deleted by default).{" "}
80+
<Version version="8.40.0" />
81+
</td>
82+
</tr>
7483
</tbody>
7584
</table>
7685

docs/reference/config/browsers.mdx

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import BrowsersExample from "@site/docs/reference/config/_partials/examples/_bro
44
import DesiredCapabilitiesExample from "@site/docs/reference/config/_partials/examples/_browsers-desired-capabilities.mdx";
55
import SessionEnvFlags from "@site/docs/reference/config/_partials/examples/_browsers-session-env-flags.mdx";
66
import AssertViewOptions from "../../_partials/specs/assert-view-options.mdx";
7+
import Version from "../../_partials/specs/version.mdx";
78

89
# browsers
910

@@ -1076,6 +1077,55 @@ The section has the following parameters:
10761077
the application's backend source code.
10771078
</Admonition>
10781079

1080+
## stateOpts {#state_opts}
1081+
1082+
<Version version="8.40.0" />
1083+
1084+
Default settings for state commands.
1085+
1086+
You can set parameters once and then use state commands ([saveState][saveState], [restoreState][restoreState], [getState][getState]) without specifying options.
1087+
However, if you explicitly provide parameters for a command, they will have the highest priority.
1088+
1089+
<table>
1090+
<thead>
1091+
<tr>
1092+
<td>**Parameter**</td>
1093+
<td>**Type**</td>
1094+
<td>**Default**</td>
1095+
<td>**Description**</td>
1096+
</tr>
1097+
</thead>
1098+
<tbody>
1099+
<tr>
1100+
<td>`stateOpts`</td>
1101+
<td>`StateOpts`</td>
1102+
<td>`undefined`</td>
1103+
<td>Default options for state commands.</td>
1104+
</tr>
1105+
</tbody>
1106+
</table>
1107+
1108+
```typescript
1109+
type StateOpts = {
1110+
path?: string;
1111+
cookies?: boolean;
1112+
localStorage?: boolean;
1113+
sessionStorage?: boolean;
1114+
cookieFilter?: (cookie: Cookie) => boolean;
1115+
keepFile?: boolean;
1116+
};
1117+
```
1118+
1119+
Example of a valid configuration:
1120+
1121+
```typescript
1122+
export = {
1123+
stateOpts: {
1124+
path: "stateDump.json",
1125+
},
1126+
};
1127+
```
1128+
10791129
[desired-caps]: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities
10801130
[html-reporter]: ../../../html-reporter/html-reporter-setup
10811131
[got]: https://github.com/sindresorhus/got/
@@ -1091,3 +1141,6 @@ The section has the following parameters:
10911141
[how-to-use-cdp]: ../../../guides/how-to-use-cdp
10921142
[testplane-also-in-helper]: ../../testplane-helper
10931143
[time-travel]: ../../../basic-guides/time-travel
1144+
[saveState]: ../../../commands/browser/saveState
1145+
[restoreState]: ../../../commands/browser/restoreState
1146+
[getState]: ../../../commands/browser/getState
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import Version from "../../_partials/specs/version.mdx";
2+
3+
# getState
4+
5+
<Version version="8.40.0" />
6+
7+
## Обзор {#overview}
8+
9+
Эта команда возвращает состояние страницы из файла, ранее сохраненного с помощью команды [saveState][saveState].
10+
11+
## Использование {#usage}
12+
13+
```typescript
14+
import type { SaveStateData } from "testplane";
15+
16+
const stateDump: SaveStateData = await browser.getState({
17+
path: "./stateDump.json",
18+
});
19+
```
20+
21+
## Параметры команды {#parameters}
22+
23+
<table>
24+
<thead>
25+
<tr>
26+
<td>**Имя**</td>
27+
<td>**Тип**</td>
28+
<td>**Значение по умолчанию**</td>
29+
<td>**Описание**</td>
30+
</tr>
31+
</thead>
32+
<tbody>
33+
<tr>
34+
<td>path</td>
35+
<td>`string`</td>
36+
<td>`-`</td>
37+
<td>Путь к файлу с состоянием.</td>
38+
</tr>
39+
</tbody>
40+
</table>
41+
42+
## Usage Examples {#examples}
43+
44+
Save state in file.
45+
46+
```typescript
47+
it("test", async ({ browser }) => {
48+
const stateData = await browser.getState({
49+
path: "./stateDump.json",
50+
});
51+
});
52+
```
53+
54+
## Related Commands {#related}
55+
56+
- [saveState][saveState]
57+
58+
[saveState]: ../saveState

i18n/ru/docusaurus-plugin-content-docs/current/commands/browser/restoreState.mdx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ await browser.restoreState({
8282
<td>`-`</td>
8383
<td>Функция для фильтрации кук, принимает объект куки и возвращает boolean.</td>
8484
</tr>
85+
<tr>
86+
<td>refresh</td>
87+
<td>`boolean`</td>
88+
<td>`true`</td>
89+
<td>Обновить страницу после восстановления состояния.</td>
90+
</tr>
8591
</tbody>
8692
</table>
8793

i18n/ru/docusaurus-plugin-content-docs/current/commands/browser/saveState.mdx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,15 @@ const stateDump: SaveStateData = await browser.saveState({
6969
<td>`-`</td>
7070
<td>Функция для фильтрации кук, принимает объект куки и возвращает boolean.</td>
7171
</tr>
72+
<tr>
73+
<td>keepFile</td>
74+
<td>`boolean`</td>
75+
<td>`false`</td>
76+
<td>
77+
Сохранять файл состояния после завершения тестов (по умолчанию он удаляется).
78+
<Version version="8.40.0" />
79+
</td>
80+
</tr>
7281
</tbody>
7382
</table>
7483

i18n/ru/docusaurus-plugin-content-docs/current/reference/config/browsers.mdx

Lines changed: 65 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import BrowsersExample from "@site/docs/reference/config/_partials/examples/_bro
44
import DesiredCapabilitiesExample from "@site/docs/reference/config/_partials/examples/_browsers-desired-capabilities.mdx";
55
import SessionEnvFlags from "@site/docs/reference/config/_partials/examples/_browsers-session-env-flags.mdx";
66
import AssertViewOptions from "@site/docs/_partials/specs/assert-view-options.mdx";
7+
import Version from "@site/docs/_partials/specs/version.mdx";
78

89
# browsers
910

@@ -514,14 +515,14 @@ const defaultOpenAndWaitOpts = {
514515

515516
<table>
516517
<thead>
517-
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
518+
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
518519
</thead>
519520
<tbody>
520-
<tr><td>[`meta`](#meta)</td><td>`Record<string, any>`</td><td>_N/A_</td><td>Дополнительные данные, которые будут возвращаться командой _getMeta()_.</td></tr>
521-
<tr><td>[`takeScreenshotOnFails`](#take_screenshot_on_fails)</td><td>`ScreenshotOnFails`</td><td>`{ testFail: true, assertViewFail: true }`</td><td>Определяет снимать ли скриншот страницы браузера _(Page Screenshot)_ при падении теста, а также при падении команды _assertView_.</td></tr>
522-
<tr><td>[`takeScreenshotOnFailsMode`](#take_screenshot_on_fails_mode)</td><td>`"viewport" | "fullpage"`</td><td>`"fullpage"`</td><td>Режим снятия скриншота при падении теста.</td></tr>
523-
<tr><td>[`takeScreenshotOnFailsTimeout`](#take_screenshot_on_fails_timeout)</td><td>`number`</td><td>`5000`</td><td>Таймаут для снятия скриншота страницы браузера _(Page Screenshot)_ при падении теста, в мс.</td></tr>
524-
<tr><td>[`saveHistoryMode`](#save_history_mode)</td><td>`"all" | "none" | "onlyFailed"`</td><td>`"all"`</td><td>Сохранять историю всех выполненных команд.</td></tr>
521+
<tr><td>[`meta`](#meta)</td><td>`Record<string, any>`</td><td>_N/A_</td><td>Дополнительные данные, которые будут возвращаться командой _getMeta()_.</td></tr>
522+
<tr><td>[`takeScreenshotOnFails`](#take_screenshot_on_fails)</td><td>`ScreenshotOnFails`</td><td>`{ testFail: true, assertViewFail: true }`</td><td>Определяет снимать ли скриншот страницы браузера _(Page Screenshot)_ при падении теста, а также при падении команды _assertView_.</td></tr>
523+
<tr><td>[`takeScreenshotOnFailsMode`](#take_screenshot_on_fails_mode)</td><td>`"viewport" | "fullpage"`</td><td>`"fullpage"`</td><td>Режим снятия скриншота при падении теста.</td></tr>
524+
<tr><td>[`takeScreenshotOnFailsTimeout`](#take_screenshot_on_fails_timeout)</td><td>`number`</td><td>`5000`</td><td>Таймаут для снятия скриншота страницы браузера _(Page Screenshot)_ при падении теста, в мс.</td></tr>
525+
<tr><td>[`saveHistoryMode`](#save_history_mode)</td><td>`"all" | "none" | "onlyFailed"`</td><td>`"all"`</td><td>Сохранять историю всех выполненных команд.</td></tr>
525526
</tbody>
526527
</table>
527528

@@ -833,14 +834,14 @@ const defaultAssertViewOpts = {
833834

834835
<table>
835836
<thead>
836-
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
837+
<tr><td>**Параметр**</td><td>**Тип**</td><td>**По&nbsp;умолчанию**</td><td>**Описание**</td></tr>
837838
</thead>
838839
<tbody>
839-
<tr><td>[`agent`](#agent)</td><td>`object`</td><td>`null`</td><td>Позволяет задать свои [агенты][got-agent] для запросов по _http, https, http2_.</td></tr>
840-
<tr><td>[`headers`](#headers)</td><td>`Record<string, string>`</td><td>`null`</td><td>Позволяет настроить [заголовки][got-headers], которые будут передаваться в каждом запросе к WebDriver.</td></tr>
841-
<tr><td>[`transformRequest`](#transform_request)</td><td>`TransformRequestFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [опции][got-options] http-запроса перед запросом к WebDriver.</td></tr>
842-
<tr><td>[`transformResponse`](#transform_response)</td><td>`TransformResponseFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [http-ответ][got-response], полученный от WebDriver.</td></tr>
843-
<tr><td>[`strictSSL`](#strict_ssl)</td><td>`boolean`</td><td>`null`</td><td>Должен ли SSL-сертификат быть действительным.</td></tr>
840+
<tr><td>[`agent`](#agent)</td><td>`object`</td><td>`null`</td><td>Позволяет задать свои [агенты][got-agent] для запросов по _http, https, http2_.</td></tr>
841+
<tr><td>[`headers`](#headers)</td><td>`Record<string, string>`</td><td>`null`</td><td>Позволяет настроить [заголовки][got-headers], которые будут передаваться в каждом запросе к WebDriver.</td></tr>
842+
<tr><td>[`transformRequest`](#transform_request)</td><td>`TransformRequestFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [опции][got-options] http-запроса перед запросом к WebDriver.</td></tr>
843+
<tr><td>[`transformResponse`](#transform_response)</td><td>`TransformResponseFn`</td><td>`null`</td><td>Позволяет перехватывать и преобразовывать [http-ответ][got-response], полученный от WebDriver.</td></tr>
844+
<tr><td>[`strictSSL`](#strict_ssl)</td><td>`boolean`</td><td>`null`</td><td>Должен ли SSL-сертификат быть действительным.</td></tr>
844845
</tbody>
845846
</table>
846847

@@ -1079,6 +1080,55 @@ export = {
10791080
серверной части приложения.
10801081
</Admonition>
10811082

1083+
## stateOpts {#state_opts}
1084+
1085+
<Version version="8.40.0" />
1086+
1087+
Настройки по умолчанию для команд состояния.
1088+
1089+
Вы можете задать параметры один раз и затем использовать команды состояния ([saveState][saveState], [restoreState][restoreState], [getState][getState]) без указания опций.
1090+
Однако если вы явно укажете параметры для команды, они будут иметь высший приоритет.
1091+
1092+
<table>
1093+
<thead>
1094+
<tr>
1095+
<td>**Параметр**</td>
1096+
<td>**Тип**</td>
1097+
<td>**По&nbsp;умолчанию**</td>
1098+
<td>**Описание**</td>
1099+
</tr>
1100+
</thead>
1101+
<tbody>
1102+
<tr>
1103+
<td>`stateOpts`</td>
1104+
<td>`StateOpts`</td>
1105+
<td>`undefined`</td>
1106+
<td>Настройки по умолчанию для команд состояния.</td>
1107+
</tr>
1108+
</tbody>
1109+
</table>
1110+
1111+
```typescript
1112+
type StateOpts = {
1113+
path?: string;
1114+
cookies?: boolean;
1115+
localStorage?: boolean;
1116+
sessionStorage?: boolean;
1117+
cookieFilter?: (cookie: Cookie) => boolean;
1118+
keepFile?: boolean;
1119+
};
1120+
```
1121+
1122+
Пример валидной конфигурации:
1123+
1124+
```typescript
1125+
export = {
1126+
stateOpts: {
1127+
path: "stateDump.json",
1128+
},
1129+
};
1130+
```
1131+
10821132
[desired-caps]: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities
10831133
[html-reporter]: ../../../html-reporter/html-reporter-setup
10841134
[got]: https://github.com/sindresorhus/got/
@@ -1094,3 +1144,6 @@ export = {
10941144
[how-to-use-cdp]: ../../../guides/how-to-use-cdp
10951145
[testplane-also-in-helper]: ../../testplane-helper
10961146
[time-travel]: ../../../basic-guides/time-travel
1147+
[saveState]: .../../../../../commands/browser/saveState
1148+
[restoreState]: .../../../../../commands/browser/restoreState
1149+
[getState]: .../../../../../commands/browser/getState

0 commit comments

Comments
 (0)