# `semantic.fake_invalid`

Test's fakes script something no provider operation answers.

Area 13, [Testing](../topics/testing.md); not declinable; the next step is usually the agent's.

A test's `fakes:` scripts something no provider operation answers: an operation the app's connections don't have, a name
that is none of the operation's failures' codes or a condition, an
operation scripted twice or with no answers, or a value for one that
gives nothing. A value of the wrong type is the usual `type.mismatch`.













```jadpo
use app { couriers }
use shipping/failures { SlotGone }

test "a taken slot is the app's own failure" {
    fakes: {
        couriers.bookings.create: [slot_takn]
    }
    assert book("N1 9GU") fails SlotGone
}
```

```text
error: `slot_takn` isn't an answer `couriers.bookings.create` gives
 --> domains/shipping/actions/book.test.jadpo:6:36
  |
6 |         couriers.bookings.create: [slot_takn]
  |                                    ^^^^^^^^^ not a failure or a condition
  reason: A scripted answer is a value of `AcmeCouriers.Booking`, one of `couriers.bookings.create`'s failures by its code (`slot_taken`), or a condition: `unavailable`, `lost`, `in_use` or `misconfigured`.
  next: Use `slot_taken` instead of `slot_takn` (agent)
  rule: semantic.fake_invalid
  help: https://jadpo.dev/docs/errors/semantic.fake_invalid

check failed: 1 error, 13 files
```
