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 }
const fake := Fake{}
fn test_it_returns_200_for_home_page() {
content := fake.sentence()
app := create_app(
routes: [
route.get(path: "/", callback: fn [content] (app App) !Response {
return app.response.html(content: content)
})
]
request: Request{
method: .get
path: "/"
}
)
res := app.render()
expect(res.status).to_be_equal_to(Status.ok)
expect(res.content).to_be_equal_to(content)
}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"
}