-
Notifications
You must be signed in to change notification settings - Fork 63
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
Conversation
map: (value, config, currentNode, meta) => { | ||
if (meta.isSpecified) { | ||
if (meta.isSetByUser || !_.isNull(value)) { |
There was a problem hiding this comment.
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
и при этом дефолтное значение прилетает из топ левела (если оно было указано). Поэтому тут приходится писать чуть сложнее решение.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Печально, что приходится к boolean
значениям примешивать null
, но дешевых вариантов "как сделать тут лучше" я не вижу.
There was a problem hiding this comment.
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, |
There was a problem hiding this comment.
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", () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавил тестов, которые не работали со старым кодом.
There was a problem hiding this 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)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Печально, что приходится к boolean
значениям примешивать null
, но дешевых вариантов "как сделать тут лучше" я не вижу.
65d0fef
to
51b87fd
Compare
No description provided.