BigQuery
Seed BigQuery tables and check the rows your services write.
The steps use the scenario’s project (the {word} gcp project with the following properties:, from gcp-core). Tables are named dataset.table (in the project) or project.dataset.table.
A seed is a YAML or JSON file that maps tables to the rows to insert (a streaming insert, tabledata.insertAll):
billing.carrier_rates: - carrier: KESTREL service: express price_per_kg: 1.35Checks wait (10 seconds unless within {duration} says otherwise) until the table has a row, or a number of rows, meeting every condition: column | value rows, with a dotted path into RECORD columns (address.city), compared as text: numbers as written, NUMERIC as its decimal, TIMESTAMP in RFC 3339 (2026-09-24T09:30:00Z), DATE as 2026-09-24; null for NULL. A check reads the columns its conditions name, of up to 5,000 rows of the table: check the tables your scenarios write, not warehouse-size ones.
gcp-bigquery.seed
Section titled “gcp-bigquery.seed”Given a {filepath} bigquery seedInsert the rows of a seed file (resolved against resources): YAML or JSON mapping tables to lists of rows.
Parameters: {filepath} (A file of the project, without whitespace: a path relative to the resources directories or to the directory of axx.yaml, or an absolute path. Editors link it to the file)
Example:
Given a seeds/carrier-rates.yaml bigquery seedSince 0.1.0.
gcp-bigquery.row
Section titled “gcp-bigquery.row”Then [[within {duration} ]]the {word} bigquery table has a row where: | ... | ... |Wait (10s, or the given time) until the table has a row meeting every column | value row.
Variants (optional parts in [[...]] above):
the {word} bigquery table has a row where:within {duration} the {word} bigquery table has a row where:
Parameters: {duration} (A duration in seconds or minutes, e.g. 5s or 2m), {word} (one word, no spaces)
Example:
Then within 30s the billing.invoice_lines bigquery table has a row where:Since 0.1.0.
gcp-bigquery.rows
Section titled “gcp-bigquery.rows”Then [[within {duration} ]]the {word} bigquery table has {int} row(s) where: | ... | ... |Wait (10s, or the given time) until exactly that many rows of the table meet every column | value row.
Variants (optional parts in [[...]] above):
the {word} bigquery table has {int} row(s) where:within {duration} the {word} bigquery table has {int} row(s) where:
Parameters: {duration} (A duration in seconds or minutes, e.g. 5s or 2m), {word} (one word, no spaces), {int} (a 32-bit integer)
Example:
Then the billing.invoice_lines bigquery table has 3 rows where:Since 0.1.0.