Skip to content

Test

sqlanvil test actions can be used to write unit tests for your generated SQL

You can create unit tests in the following ways.

Using a SQLX file:

-- definitions/name.sqlx
config {
type: "test"
}
input "foo" {
SELECT 1 AS bar
}
SELECT 1 AS bar

Using the Javascript API:

definitions/file.js
test("name")
.input("sample_data", `SELECT 1 AS bar`)
.expect(`SELECT 1 AS bar`);
publish("sample_data", { type: "table" }).query("SELECT 1 AS bar")

Note: When using the Javascript API, methods in this class can be accessed by the returned value. This is where input and expect come from.

  • ActionBuilder‹Test›

    Test

dataset(ref: Resolvable): this

Sets the schema (BigQuery dataset / Postgres schema) in which to create the output of this action.

Parameters:

NameType
refResolvable

Returns: this


expect(contextableQuery: ContextableIActionContext, string›): this

Sets the expected output of the query to being tested against.

Parameters:

NameType
contextableQueryContextableIActionContext, string›

Returns: this


input(refName: string | string[], contextableQuery: ContextableIActionContext, string›): this

Sets the input query to unit test against.

Parameters:

NameType
refNamestring | string[]
contextableQueryContextableIActionContext, string›

Returns: this