feat: testID property for use with e2e testing without interfering with a11y (#9793)

* fix(android): nested frames were sometimes not recreated (#9748)

Co-authored-by: Eduardo Speroni <edusperoni@gmail.com>

* feat: testID property for use with e2e testing without interfering with a11y

* feat: better testID support along a11y

wip

* fix: make sure we have a defined id

* feat: --env.e2e to enable testID

* chore: return if using testID

* chore: cleanup

Co-authored-by: Eduardo Speroni <edusperoni@gmail.com>
Co-authored-by: Igor Randjelovic <rigor789@gmail.com>
This commit is contained in:
Nathan Walker
2022-03-08 14:25:05 -08:00
committed by GitHub
parent 86fdf5810a
commit 8be543bcc7
17 changed files with 123 additions and 37 deletions

View File

@ -351,7 +351,8 @@ exports[`angular configuration for android 1`] = `
__IOS__: false,
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */
@ -774,7 +775,8 @@ exports[`angular configuration for ios 1`] = `
__IOS__: true,
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */

View File

@ -262,7 +262,8 @@ exports[`base configuration for android 1`] = `
__IOS__: false,
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */
@ -582,7 +583,8 @@ exports[`base configuration for ios 1`] = `
__IOS__: true,
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */

View File

@ -262,7 +262,8 @@ exports[`javascript configuration for android 1`] = `
__IOS__: false,
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */
@ -591,7 +592,8 @@ exports[`javascript configuration for ios 1`] = `
__IOS__: true,
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */

View File

@ -285,6 +285,7 @@ exports[`react configuration > android > adds ReactRefreshWebpackPlugin when HMR
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process',
__USE_TEST_ID__: false,
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}
@ -616,6 +617,7 @@ exports[`react configuration > android > base config 1`] = `
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process',
__USE_TEST_ID__: false,
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}
@ -954,6 +956,7 @@ exports[`react configuration > ios > adds ReactRefreshWebpackPlugin when HMR ena
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process',
__USE_TEST_ID__: false,
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}
@ -1286,6 +1289,7 @@ exports[`react configuration > ios > base config 1`] = `
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process',
__USE_TEST_ID__: false,
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}

View File

@ -289,7 +289,8 @@ exports[`svelte configuration for android 1`] = `
__IOS__: false,
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */
@ -630,7 +631,8 @@ exports[`svelte configuration for ios 1`] = `
__IOS__: true,
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */

View File

@ -262,7 +262,8 @@ exports[`typescript configuration for android 1`] = `
__IOS__: false,
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */
@ -591,7 +592,8 @@ exports[`typescript configuration for ios 1`] = `
__IOS__: true,
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */

View File

@ -302,7 +302,8 @@ exports[`vue configuration for android 1`] = `
__IOS__: false,
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */
@ -656,7 +657,8 @@ exports[`vue configuration for ios 1`] = `
__IOS__: true,
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process'
process: 'global.process',
__USE_TEST_ID__: false
}
),
/* config.plugin('CopyWebpackPlugin') */

View File

@ -425,6 +425,9 @@ export default function (config: Config, env: IWebpackEnv = _env): Config {
/* for compat only */ 'global.isIOS': platform === 'ios',
process: 'global.process',
// enable testID when using --env.e2e
__USE_TEST_ID__: !!env.e2e,
// todo: ?!?!
// profile: '() => {}',
},

View File

@ -49,6 +49,7 @@ export interface IWebpackEnv {
// misc
replace?: string[] | string;
watchNodeModules?: boolean;
e2e?: boolean;
}
interface IChainEntry {