Skip to content

AZ501: A $name used before it is given ​

In a named test, $ann is the id a given ann = {...} line returned. Give it first, on a line above.

Reported when the tests are compiled: rowfence test, the editor, rowfence dev.

The mistake ​

authz
app role app_user
type user = app.users
type folder = app.folders
  owner : user = owner_id
  can view = owner
test "owners"
  user $ann can view folder 1
line 7: $ann is not named yet: name it first, with given ann = {INSERT ... RETURNING id} [AZ501]

Fixed ​

authz
app role app_user
type user = app.users
type folder = app.folders
  owner : user = owner_id
  can view = owner
test "owners"
  given ann = {INSERT INTO app.users (name) VALUES ('Ann') RETURNING id}
  given top = {INSERT INTO app.folders (owner_id, name) VALUES ($ann, 'Top') RETURNING id}
  user $ann can view folder $top