# ....
workflows:
  - workflowId: postFile
    steps:
      - stepId: test
        operationId: postFile
        requestBody:
          contentType: multipart/form-data
          payload:
            file: "x-file: some-test-file.txt"
        successCriteria:
          - condition: $statusCode == 200
          - condition: $response.header.Content-Type == "application/octet-stream"
          - context: $response.body
            condition: "x-file: some-other-test-file.dat"
            type: simple
```

The files are sourced from the `.speakeasy/testfiles` directory in the root of your SDK repo, where the path provided in the `x-file` directive is relative to the `testfiles` directory.

The content of the sourced file is used as the value for the field being tested.

## Configuring an API to test against

By default, tests are generated to run against Speakeasy's mock server, which has a URL of `http://localhost:18080`. The mock server validates that the SDKs are functioning correctly but does not guarantee that the API is correct.

The generator can be configured to run all tests against another URL or against individual tests using the `x-speakeasy-test-server` extensions in the `.speakeasy/tests.arazzo.yaml` file.

If the extension is found at the top level of the Arazzo file, all workflows and tests will be configured to run against the specified server URL. If the extension is found within a workflow, only that workflow will be configured to run against the specified server URL.

The server URL can be either a static URL or an `x-env: EXAMPLE_ENV_VAR` value that pulls the value from the environment variable, `EXAMPLE_ENV_VAR` (where the name of the environment variable can be any specified name).

```yaml
arazzo: 1.0.0