diff --git a/detox/detox.d.ts b/detox/detox.d.ts index 3b1737f0c..be7680db3 100644 --- a/detox/detox.d.ts +++ b/detox/detox.d.ts @@ -142,6 +142,7 @@ declare global { localIdentifier?: string; networkLogsIncludeHosts?: string[]; networkLogsExcludeHosts?: string[]; + autoGrantPermissions?: boolean; } interface DetoxCloudAuthConfig { diff --git a/detox/src/configuration/composeSessionConfig.js b/detox/src/configuration/composeSessionConfig.js index 98487146d..7d203ab69 100644 --- a/detox/src/configuration/composeSessionConfig.js +++ b/detox/src/configuration/composeSessionConfig.js @@ -14,7 +14,7 @@ const log = require('../utils/logger').child({ cat: 'config' }); */ async function composeSessionConfig(options) { const { errorComposer, cliConfig, globalConfig, localConfig, isCloudSession } = options; - const cloudSupportedCaps = ['server', 'name', 'project', 'build', 'local', 'forceLocal', 'localIdentifier', 'networkLogsIncludeHosts', 'networkLogsExcludeHosts']; + const cloudSupportedCaps = ['server', 'name', 'project', 'build', 'local', 'forceLocal', 'localIdentifier', 'networkLogsIncludeHosts', 'networkLogsExcludeHosts', 'autoGrantPermissions']; const session = { ...globalConfig.session, ...localConfig.session, @@ -90,6 +90,12 @@ async function composeSessionConfig(options) { throw errorComposer.invalidCloudSessionProperty('forceLocal', 'boolean'); } } + if (session.autoGrantPermissions != null) { + const value = session.autoGrantPermissions; + if (typeof value !== 'boolean') { + throw errorComposer.invalidCloudSessionProperty('autoGrantPermissions', 'boolean'); + } + } if (session.localIdentifier != null) { const value = session.localIdentifier; if (typeof value !== 'string' || value.length === 0) { diff --git a/detox/src/configuration/index.js b/detox/src/configuration/index.js index 1d6bfcd53..a7135465e 100644 --- a/detox/src/configuration/index.js +++ b/detox/src/configuration/index.js @@ -138,7 +138,8 @@ async function composeDetoxConfig({ 'forceLocal': _.get(sessionConfig, 'forceLocal'), 'localIdentifier': _.get(sessionConfig, 'localIdentifier'), 'networkLogsIncludeHosts': _.get(sessionConfig, 'networkLogsIncludeHosts'), - 'networkLogsExcludeHosts': _.get(sessionConfig, 'networkLogsExcludeHosts') + 'networkLogsExcludeHosts': _.get(sessionConfig, 'networkLogsExcludeHosts'), + 'autoGrantPermissions': _.get(sessionConfig, 'autoGrantPermissions') }; sessionConfig.server += `?caps=${encodeURIComponent(JSON.stringify(query_param))}`; }