Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: ability to disable tests isolation #821

Merged
merged 1 commit into from
Dec 27, 2023

Conversation

DudaGod
Copy link
Member

@DudaGod DudaGod commented Dec 26, 2023

No description provided.

map: (value, config, currentNode, meta) => {
if (meta.isSpecified) {
if (meta.isSetByUser || !_.isNull(value)) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут ошибся и заюзал старое название поля isSpecified (раньше так называлось). Но позже мы его переименовали в isSetByUser. Поправил.

Кроме этого дефолт переделал в null иначе не получается корректно обработать значение.
Тут сначала map выполняется для top level конфига, а потом для каждого браузера. И проблема в том, что если isolation указать в top level, то при его обработке флаг isSetByUser будет выставлен корректно. Но затем map будет вызван для каждого браузера и для него isSetByUser: false и при этом дефолтное значение прилетает из топ левела (если оно было указано). Поэтому тут приходится писать чуть сложнее решение.

Copy link
Member

@KuznetsovRoman KuznetsovRoman Dec 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Печально, что приходится к boolean значениям примешивать null, но дешевых вариантов "как сделать тут лучше" я не вижу.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я пока более простого решения не нашел. По дефолту в конфиге браузера у юзера все равно будет валидный boolean. Так как capabilities при разборе конфига браузера - обязательное значение. Т.е. всегда будем проваливаться в isSupportIsolation, который возвращает boolean.

@@ -91,7 +91,7 @@ module.exports = {
key: null,
region: null,
headless: null,
isolation: false,
isolation: null,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Если оставить false, то я при разборе опции для браузера не смогу понять это ее выставил юзер в top level конфиге или это дефолтное значение.

@@ -1199,6 +1199,46 @@ describe("config browser-options", () => {

assert.isFalse(config.browsers.b1.isolation);
});

describe("should set to 'false' by user even if browser support isolation", () => {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавил тестов, которые не работали со старым кодом.

Copy link
Member

@KuznetsovRoman KuznetsovRoman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/ok

map: (value, config, currentNode, meta) => {
if (meta.isSpecified) {
if (meta.isSetByUser || !_.isNull(value)) {
Copy link
Member

@KuznetsovRoman KuznetsovRoman Dec 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Печально, что приходится к boolean значениям примешивать null, но дешевых вариантов "как сделать тут лучше" я не вижу.

@DudaGod DudaGod force-pushed the HERMIONE-1308.disable_isolation branch from 65d0fef to 51b87fd Compare December 27, 2023 11:48
@DudaGod DudaGod merged commit a577d21 into master Dec 27, 2023
2 checks passed
@DudaGod DudaGod deleted the HERMIONE-1308.disable_isolation branch December 27, 2023 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants