Fake data 
Basic usage 
You can generate fake data, like person names, random integers, ... Useful for tests.
v
import khalyomede.mantis.http { create_app, App, Response, Request, Status }
import khalyomede.mantis.http.route
import khalyomede.mantis.test { expect, Fake }
Custom data 
The Fake struct data are called "generators". See the available generators section for a complete list.
You can create your own like this.
v
import khalyomede.mantis.test { expect }
import rand
struct Payment {}
fn (payment Payment) status() string {
  return rand.element(["pending", "validated", "rejected", "cancelled"]) or { "pending" }
}
struct Fake {
  test.Fake
  payment Payment
}
const fake := Fake{}
fn test_it_can_generate_payment_status() {
  status := fake.payment.status()
  expect(status).to_not_be_empty()
}Available generators 
- Company name
- Country code alpha 2
- Country code alpha 3
- Database primary key
- Integer between
- Internet base url
- Internet domain
- Internet protocol
- Internet top level domain
- Internet port
- Lang
- Negative integer
- Person first name
- Person last name
- Person name
- Sentence
- UUID v4
- Word
Company name 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  company_name := fake.company.name() // "Google"
}Country code alpha 2 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  code := fake.country.code.alpha2() // "us"
}Country code alpha 2 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  code := fake.country.code.alpha3() // "usa"
}Database primary key 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  key := fake.database.primary_key() // "129"
}Email 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  email := fake.email() // "john.doe@example.com"
}Integer between 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  number := fake.integer.between(1, 20) // 12
}Internet base url 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  base_url := fake.internet.base_url() // "https://example.com"
}Internet domain 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  domain := fake.internet.domain() // "example"
}Internet protocol 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  protocol := fake.internet.protocol() // "https"
}Internet top level domain 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  tld := fake.internet.top_level_domain() // "com"
}Internet port 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  port := fake.internet.port() // 3306
}Lang 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  lang := fake.lang() // "en"
}Negative integer 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  number := fake.negative_integer() // -125
}Person first name 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  name := fake.person.first_name() // "John"
}Person last name 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  name := fake.person.last_name() // "Doe"
}Person name 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  name := fake.person.name() // "John Doe"
}Sentence 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  sentence := fake.sentence() // "The meeting has been rescheduled."
}UUID v4 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  uuid := fake.uuid.v4() // "4c9c5f06-ea31-4548-a200-82ab7fe14017"
}Word 
v
module main
import khalyomede.mantis.test { Fake }
fn main() {
  fake := Fake{}
  uuid := fake.word() // "eloquent"
}