For now I have some basic working unit test to check the very basic of my codegen serialization work but before writing every others test. I wanted to know if you think I could improve the readability of my code.
Please note assert_code format the gleam code to compare on both side so I don't need to have exactly the same linebreak...
```ex
pub fn basic_test() {
let #(assert_read, read) = testable_callback2(fn(_, ) { Ok(None) })
let #(assert_read_bits, read_bits) = testable_callback2(fn(, ) { Ok(None) })
let #(assert_write, write) =
testable_callback3(fn(, asset: asset.BuildAsset, contents) {
assert asset.path == "/entity_json.gleam"
assert_code(
contents,
"
import entity
import gleam/dynamic/decode
import gleam/json
pub fn post_to_json(post: entity.Post) -> json.Json {
case post {
entity.Post(id:) ->
json.object([
#("id", json.int(id)),
])
}
}
pub fn post_json_decoder() -> decode.Decoder(entity.Post) {
use id <- decode.field("id", decode.int)
decode.success(entity.Post(id:))
}
",
)
Ok(Nil)
})
let #(assert_write_bits, write_bits) =
testable_callback3(fn(_, _, _) { Ok(Nil) })
simulate.simulate_builder_run(
builders: [
json.json_serializable_builder(json.Config([], [])),
],
project_files: [
VirtualFile(
path: "/entity.gleam",
contents: "
//@json_encode()
//@json_decode()
pub type Post {
Post(id: Int)
}",
),
],
read:,
read_bits:,
write:,
write_bits:,
)
assert_read(0)
assert_read_bits(0)
assert_write(1)
assert_write_bits(0)
}