0.3.386 • Published 10 months ago

@react-native-windows/automation v0.3.386

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@react-native-windows/automation

@react-native-windows/automation makes it easy to perform UI tests against your react-native-windows application using Jest.

This package is a work in progress

System Requirements

@react-native-windows/automation relies on WinAppDriver 1.2.1 or later to manipulate and inspect your application via Windows UI Automation. This is already installed in common CI environments like GitHub Actions or Azure Pipelines hosted images.

Configuring Jest

First, ensure that @react-native-windows/automation is included as a dependency in your package:

{
  "devDependencies": {
    "@react-native-windows/automation": "<version>",
  }
}

Next, edit your Jest configuration to use @react-native-windows/automation as your test environment. Add the following to your jest.config.js or jest.config.ts file:

module.exports = {
...
  // Set up the automation environment before running tests
  testEnvironment: '@react-native-windows/automation',

  // Only run a single test at a time
  maxWorkers: 1,

  // Set up @react-native-windows/automation specific options (see below)
  testEnvironmentOptions: {
    app: '<AppName>',
  },
};

Environment Options

@react-native-windows/automation is configured via the testEnvironmentOptions property in your Jest configuration. The following options are valid:

testEnvironmentOptions: {
  // Required: Your application to launch, as either an AppX package identity,
  // or path to an .exe for an unpackaged application.
  app: 'Microsoft.WindowsAlarms',

  /**
   * Optional: Arguments to be passed to your application when launched
   */
  appArguments: '--bundle testBundle.js';

  // Optional: Explicit path to WinAppDriver. By default,
  // `@react-native-windows/automation` tries to use
  // "%PROGRAMFILES(X86)%\Windows Application Driver\WinAppDriver.exe"
  winAppDriverBin: 'D:\\WinAppDriver.exe',

  // Optional: Whether to break on app launch, before starting tests 
  breakOnStart: false,

  // Optional: Options to be passed to WebDriverIO
  // See https://webdriver.io/docs/options/
  webdriverOptions: {
      // Port to use for WebDriver server (Default 4723)
      port: 4444

      // Level of logging verbosity: trace | debug | info | warn | error
      logLevel: 'error',

      // Default timeout for all waitFor* commands.
      waitforTimeout: 60000,

      // Default timeout in milliseconds for request
      connectionRetryTimeout: 90000,

      // Default request retries count
      connectionRetryCount: 10,
    },
},

Writing Tests

@react-native-windows/automation exports an app member with functions to perform globally scoped WebDriver commands, such as locating an element or waiting for a condition. Several strategies are present to locate an element, with the reccomended being to use React Native's testID property.

A located AutomationElement exposes methods to allow application interaction and introspection, such as clicking or typing.

import {app} from '@react-native-windows/automation';

beforeAll(async () => {
  const appHeader = await app.findElementByTestID('app-header');

  await app.waitUntil(async () => {
    const headerText = await appHeader.getText();
    return headerText.includes('Welcome');
  }) 
});

test('Type abc', async () => {
  const textInput = await app.findElementByTestID('textinput-field');
  await textInput.setValue('abc');
  expect(await textInput.getText()).toBe('abc');
});

Performing Additional Actions

WIP Not yet exposed

Sometimes it is useful to exmaine or manipulate the application in ways that are not exposed to Windows UI Automation. An additional package, @react-native-windows/automation-channel can be included in your application as a native module to allow writing custom commands performed by your application in-process. Some pre-built commands can be included using the @react-native-windows/automation-commands package.

Visual Comparison

WIP Not yet exposed

A common use-case of UI testing is to ensure your components look the way you expect. Tools like enzyme allow inspecting your React component tree, but are oblivious to the native UI tree.

@react-native-windows/automation-commands exposes a dumpVisualTree command which creates a JSON object corresponding to the XAML tree under a given testID. This can be used in conjunction with snapshot testing to validate native component logic stays consistent.

import {dumpVisualTree} from '@react-native-windows/automation-commands';

test('Widget', async () => {
  const dump = await dumpVisualTree('widget-test-id');
  expect(dump).toMatchSnapshot();
});
0.3.341

1 year ago

0.3.340

1 year ago

0.3.343

1 year ago

0.3.342

1 year ago

0.3.345

1 year ago

0.3.344

1 year ago

0.3.347

1 year ago

0.3.346

1 year ago

0.3.349

1 year ago

0.3.348

1 year ago

0.3.339

1 year ago

0.3.330

1 year ago

0.3.332

1 year ago

0.3.331

1 year ago

0.3.334

1 year ago

0.3.333

1 year ago

0.3.336

1 year ago

0.3.335

1 year ago

0.3.338

1 year ago

0.3.337

1 year ago

0.3.329

1 year ago

0.3.328

1 year ago

0.3.321

1 year ago

0.3.320

1 year ago

0.3.323

1 year ago

0.3.322

1 year ago

0.3.325

1 year ago

0.3.324

1 year ago

0.3.327

1 year ago

0.3.326

1 year ago

0.3.318

1 year ago

0.3.317

1 year ago

0.3.319

1 year ago

0.3.310

1 year ago

0.3.312

1 year ago

0.3.311

1 year ago

0.3.314

1 year ago

0.3.313

1 year ago

0.3.316

1 year ago

0.3.315

1 year ago

0.3.309

1 year ago

0.3.381

11 months ago

0.3.380

11 months ago

0.3.383

10 months ago

0.3.382

11 months ago

0.3.385

10 months ago

0.3.384

10 months ago

0.3.386

10 months ago

0.3.370

11 months ago

0.3.372

11 months ago

0.3.371

11 months ago

0.3.374

11 months ago

0.3.373

11 months ago

0.3.376

11 months ago

0.3.375

11 months ago

0.3.378

11 months ago

0.3.377

11 months ago

0.3.379

11 months ago

0.3.361

12 months ago

0.3.360

12 months ago

0.3.363

12 months ago

0.3.362

12 months ago

0.3.365

12 months ago

0.3.364

12 months ago

0.3.367

12 months ago

0.3.366

12 months ago

0.3.369

12 months ago

0.3.368

12 months ago

0.3.350

1 year ago

0.3.352

1 year ago

0.3.351

1 year ago

0.3.354

1 year ago

0.3.353

1 year ago

0.3.356

1 year ago

0.3.355

1 year ago

0.3.358

12 months ago

0.3.357

1 year ago

0.3.359

12 months ago

0.3.307

1 year ago

0.3.308

1 year ago

0.3.306

1 year ago

0.3.305

1 year ago

0.3.304

1 year ago

0.3.303

1 year ago

0.3.302

1 year ago

0.3.301

1 year ago

0.3.300

1 year ago

0.3.299

1 year ago

0.3.298

1 year ago

0.3.291

2 years ago

0.3.293

2 years ago

0.3.292

2 years ago

0.3.295

1 year ago

0.3.294

1 year ago

0.3.297

1 year ago

0.3.296

1 year ago

0.3.290

2 years ago

0.3.289

2 years ago

0.3.288

2 years ago

0.3.287

2 years ago

0.3.286

2 years ago

0.3.285

2 years ago

0.3.284

2 years ago

0.3.283

2 years ago

0.3.282

2 years ago

0.3.281

2 years ago

0.3.280

2 years ago

0.3.271

2 years ago

0.3.270

2 years ago

0.3.273

2 years ago

0.3.272

2 years ago

0.3.275

2 years ago

0.3.274

2 years ago

0.3.277

2 years ago

0.3.276

2 years ago

0.3.279

2 years ago

0.3.278

2 years ago

0.3.260

2 years ago

0.3.262

2 years ago

0.3.261

2 years ago

0.3.264

2 years ago

0.3.263

2 years ago

0.3.266

2 years ago

0.3.265

2 years ago

0.3.268

2 years ago

0.3.267

2 years ago

0.3.269

2 years ago

0.3.251

2 years ago

0.3.250

2 years ago

0.3.253

2 years ago

0.3.252

2 years ago

0.3.255

2 years ago

0.3.254

2 years ago

0.3.257

2 years ago

0.3.256

2 years ago

0.3.259

2 years ago

0.3.258

2 years ago

0.3.240

2 years ago

0.3.242

2 years ago

0.3.241

2 years ago

0.3.244

2 years ago

0.3.243

2 years ago

0.3.246

2 years ago

0.3.245

2 years ago

0.3.248

2 years ago

0.3.247

2 years ago

0.3.249

2 years ago

0.3.239

2 years ago

0.3.238

2 years ago

0.3.237

2 years ago

0.3.236

2 years ago

0.3.235

2 years ago

0.3.234

2 years ago

0.3.233

2 years ago

0.3.232

2 years ago

0.3.231

2 years ago

0.3.230

2 years ago

0.3.229

2 years ago

0.3.228

2 years ago

0.3.227

2 years ago

0.3.226

2 years ago

0.3.225

2 years ago

0.3.224

2 years ago

0.3.223

2 years ago

0.3.222

2 years ago

0.3.221

2 years ago

0.3.220

2 years ago

0.3.219

2 years ago

0.3.218

2 years ago

0.3.217

2 years ago

0.3.216

2 years ago

0.3.215

2 years ago

0.3.214

2 years ago

0.3.213

2 years ago

0.3.211

2 years ago

0.3.212

2 years ago

0.3.210

2 years ago

0.3.208

2 years ago

0.3.209

2 years ago

0.3.207

2 years ago

0.3.206

2 years ago

0.3.205

2 years ago

0.3.204

2 years ago

0.3.203

2 years ago

0.3.202

2 years ago

0.3.201

2 years ago

0.3.200

2 years ago

0.3.199

2 years ago

0.3.196

2 years ago

0.3.198

2 years ago

0.3.197

2 years ago

0.3.195

2 years ago

0.3.194

2 years ago

0.3.193

2 years ago

0.3.192

2 years ago

0.3.191

2 years ago

0.3.190

2 years ago

0.3.189

2 years ago

0.3.188

2 years ago

0.3.187

2 years ago

0.3.186

2 years ago

0.3.185

2 years ago

0.3.184

2 years ago

0.3.183

2 years ago

0.3.182

2 years ago

0.3.181

2 years ago

0.3.180

2 years ago

0.3.179

2 years ago

0.3.178

2 years ago

0.3.177

2 years ago

0.3.176

2 years ago

0.3.175

2 years ago

0.3.174

2 years ago

0.3.173

2 years ago

0.3.172

2 years ago

0.3.171

2 years ago

0.3.170

2 years ago

0.3.169

2 years ago

0.3.168

2 years ago

0.3.167

2 years ago

0.3.166

2 years ago

0.3.165

2 years ago

0.3.164

2 years ago

0.3.161

2 years ago

0.3.160

2 years ago

0.3.163

2 years ago

0.3.162

2 years ago

0.3.150

2 years ago

0.3.152

2 years ago

0.3.151

2 years ago

0.3.154

2 years ago

0.3.153

2 years ago

0.3.156

2 years ago

0.3.155

2 years ago

0.3.158

2 years ago

0.3.157

2 years ago

0.3.159

2 years ago

0.3.97

3 years ago

0.3.96

3 years ago

0.3.95

3 years ago

0.3.94

3 years ago

0.3.93

3 years ago

0.3.92

3 years ago

0.3.99

3 years ago

0.3.98

3 years ago

0.3.101

3 years ago

0.3.100

3 years ago

0.3.103

3 years ago

0.3.102

3 years ago

0.3.105

3 years ago

0.3.104

3 years ago

0.3.107

3 years ago

0.3.106

3 years ago

0.3.141

2 years ago

0.3.140

2 years ago

0.3.143

2 years ago

0.3.142

2 years ago

0.3.145

2 years ago

0.3.144

2 years ago

0.3.147

2 years ago

0.3.146

2 years ago

0.3.149

2 years ago

0.3.148

2 years ago

0.3.130

3 years ago

0.3.132

3 years ago

0.3.131

3 years ago

0.3.134

3 years ago

0.3.133

3 years ago

0.3.136

2 years ago

0.3.135

3 years ago

0.3.138

2 years ago

0.3.137

2 years ago

0.3.139

2 years ago

0.3.121

3 years ago

0.3.120

3 years ago

0.3.123

3 years ago

0.3.122

3 years ago

0.3.125

3 years ago

0.3.124

3 years ago

0.3.127

3 years ago

0.3.126

3 years ago

0.3.129

3 years ago

0.3.128

3 years ago

0.3.119

3 years ago

0.3.110

3 years ago

0.3.112

3 years ago

0.3.111

3 years ago

0.3.114

3 years ago

0.3.113

3 years ago

0.3.116

3 years ago

0.3.115

3 years ago

0.3.118

3 years ago

0.3.117

3 years ago

0.3.109

3 years ago

0.3.108

3 years ago

0.3.91

3 years ago

0.3.75

3 years ago

0.3.74

3 years ago

0.3.73

3 years ago

0.3.72

3 years ago

0.3.71

3 years ago

0.3.70

3 years ago

0.3.79

3 years ago

0.3.78

3 years ago

0.3.77

3 years ago

0.3.76

3 years ago

0.3.90

3 years ago

0.3.86

3 years ago

0.3.85

3 years ago

0.3.84

3 years ago

0.3.83

3 years ago

0.3.82

3 years ago

0.3.81

3 years ago

0.3.80

3 years ago

0.3.89

3 years ago

0.3.88

3 years ago

0.3.87

3 years ago

0.3.64

3 years ago

0.3.63

3 years ago

0.3.62

3 years ago

0.3.61

3 years ago

0.3.60

3 years ago

0.3.69

3 years ago

0.3.68

3 years ago

0.3.67

3 years ago

0.3.66

3 years ago

0.3.65

3 years ago

0.3.53

3 years ago

0.3.52

3 years ago

0.3.51

3 years ago

0.3.50

3 years ago

0.3.59

3 years ago

0.3.58

3 years ago

0.3.57

3 years ago

0.3.56

3 years ago

0.3.55

3 years ago

0.3.54

3 years ago

0.3.49

3 years ago

0.3.48

3 years ago

0.3.47

3 years ago

0.3.46

3 years ago

0.3.45

3 years ago

0.3.44

3 years ago

0.3.43

3 years ago

0.3.42

3 years ago

0.3.41

3 years ago

0.3.40

3 years ago

0.3.31

3 years ago

0.3.39

3 years ago

0.3.38

3 years ago

0.3.37

3 years ago

0.3.36

3 years ago

0.3.35

3 years ago

0.3.34

3 years ago

0.3.33

3 years ago

0.3.32

3 years ago

0.1.143

4 years ago

0.1.142

4 years ago

0.2.19

3 years ago

0.2.18

3 years ago

0.2.17

3 years ago

0.2.16

3 years ago

0.2.15

3 years ago

0.2.14

3 years ago

0.2.13

3 years ago

0.2.12

3 years ago

0.2.11

3 years ago

0.2.10

3 years ago

0.3.0

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.30

3 years ago

0.3.29

3 years ago

0.3.20

3 years ago

0.3.28

3 years ago

0.3.27

3 years ago

0.3.26

3 years ago

0.3.25

3 years ago

0.3.24

3 years ago

0.3.23

3 years ago

0.3.22

3 years ago

0.3.21

3 years ago

0.3.19

3 years ago

0.3.18

3 years ago

0.3.9

3 years ago

0.3.17

3 years ago

0.3.16

3 years ago

0.3.15

3 years ago

0.3.14

3 years ago

0.3.13

3 years ago

0.3.12

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.1.139

4 years ago

0.1.136

4 years ago

0.1.135

4 years ago

0.1.138

4 years ago

0.1.137

4 years ago

0.1.132

4 years ago

0.1.131

4 years ago

0.1.134

4 years ago

0.1.133

4 years ago

0.1.141

4 years ago

0.1.140

4 years ago

0.1.118

4 years ago

0.1.117

4 years ago

0.1.119

4 years ago

0.1.114

4 years ago

0.1.113

4 years ago

0.1.116

4 years ago

0.1.115

4 years ago

0.1.110

4 years ago

0.1.112

4 years ago

0.1.111

4 years ago

0.1.129

4 years ago

0.1.128

4 years ago

0.1.125

4 years ago

0.1.124

4 years ago

0.1.127

4 years ago

0.1.126

4 years ago

0.1.121

4 years ago

0.1.120

4 years ago

0.1.123

4 years ago

0.1.122

4 years ago

0.1.130

4 years ago

0.1.98

4 years ago

0.1.99

4 years ago

0.1.107

4 years ago

0.1.106

4 years ago

0.1.109

4 years ago

0.1.108

4 years ago

0.1.103

4 years ago

0.1.102

4 years ago

0.1.105

4 years ago

0.1.104

4 years ago

0.1.101

4 years ago

0.1.100

4 years ago

0.1.96

4 years ago

0.1.97

4 years ago

0.1.90

4 years ago

0.1.91

4 years ago

0.1.92

4 years ago

0.1.93

4 years ago

0.1.94

4 years ago

0.1.95

4 years ago

0.1.85

4 years ago

0.1.86

4 years ago

0.1.87

4 years ago

0.1.88

4 years ago

0.1.89

4 years ago

0.1.81

4 years ago

0.1.82

4 years ago

0.1.83

4 years ago

0.1.84

4 years ago

0.1.80

4 years ago

0.1.74

4 years ago

0.1.75

4 years ago

0.1.76

4 years ago

0.1.77

4 years ago

0.1.78

4 years ago

0.1.79

4 years ago

0.1.70

4 years ago

0.1.71

4 years ago

0.1.72

4 years ago

0.1.73

4 years ago

0.1.63

4 years ago

0.1.64

4 years ago

0.1.65

4 years ago

0.1.66

4 years ago

0.1.67

4 years ago

0.1.68

4 years ago

0.1.69

4 years ago

0.1.61

4 years ago

0.1.62

4 years ago

0.1.52

4 years ago

0.1.53

4 years ago

0.1.54

4 years ago

0.1.55

4 years ago

0.1.56

4 years ago

0.1.57

4 years ago

0.1.58

4 years ago

0.1.59

4 years ago

0.1.51

4 years ago

0.1.60

4 years ago

0.1.50

4 years ago

0.1.49

4 years ago

0.1.41

4 years ago

0.1.42

4 years ago

0.1.43

4 years ago

0.1.44

4 years ago

0.1.45

4 years ago

0.1.46

4 years ago

0.1.47

4 years ago

0.1.48

4 years ago

0.1.40

4 years ago

0.1.38

4 years ago

0.1.39

4 years ago

0.1.30

4 years ago

0.1.31

4 years ago

0.1.32

4 years ago

0.1.33

4 years ago

0.1.34

4 years ago

0.1.35

4 years ago

0.1.36

4 years ago

0.1.37

4 years ago

0.1.27

4 years ago

0.1.28

4 years ago

0.1.29

4 years ago

0.1.20

4 years ago

0.1.21

4 years ago

0.1.22

4 years ago

0.1.23

4 years ago

0.1.24

4 years ago

0.1.25

4 years ago

0.1.26

4 years ago

0.1.19

4 years ago

0.1.10

4 years ago

0.1.11

4 years ago

0.1.12

4 years ago

0.1.13

4 years ago

0.1.14

4 years ago

0.1.15

4 years ago

0.1.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.9

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.16

4 years ago

0.1.17

4 years ago

0.1.18

4 years ago

0.0.28

4 years ago

0.0.24

4 years ago

0.0.25

4 years ago

0.0.26

4 years ago

0.0.27

4 years ago

0.0.22

4 years ago

0.0.23

4 years ago

0.0.20

4 years ago

0.0.21

4 years ago

0.0.15

4 years ago

0.0.16

4 years ago

0.0.17

4 years ago

0.0.18

4 years ago

0.0.19

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.12

4 years ago

0.0.13

4 years ago

0.0.14

4 years ago

0.0.9

4 years ago

0.0.8-4

5 years ago

0.0.8

4 years ago

0.0.8-7

4 years ago

0.0.8-6

5 years ago

0.0.8-5

5 years ago

0.0.8-3

5 years ago

0.0.8-2

5 years ago

0.0.8-0

5 years ago

0.0.8-1

5 years ago

0.0.7

5 years ago

0.0.6-0

5 years ago

0.0.5

5 years ago

0.0.5-1

5 years ago

0.0.5-0

5 years ago

0.0.4

5 years ago

0.0.4-5

5 years ago

0.0.4-4

5 years ago

0.0.4-3

5 years ago

0.0.4-2

5 years ago

0.0.4-1

5 years ago

0.0.4-0

5 years ago

0.0.3

5 years ago

0.0.3-0

5 years ago

0.0.2

5 years ago

0.0.2-0

5 years ago

0.0.1

5 years ago