aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/fixture.ml20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/fixture.ml b/lib/fixture.ml
index d5c77fa..d28d4b3 100644
--- a/lib/fixture.ml
+++ b/lib/fixture.ml
@@ -67,6 +67,10 @@ let id_of_fixture fixture =
(* TODO: Support email *)
+(* TODO: Support arbitrary string *)
+(* TODO: Support "hashed" password *)
+(* TODO: Support variables using @ *)
+(* TODO: Support JSON export *)
let rec replicate element n =
match n with
@@ -118,3 +122,19 @@ let csv_of_generated_fixtures fixtures =
let%test "csv_of_generated_fixtures" =
let result = [ [ "id"; "name" ]; [ "1234"; "John" ] ] |> csv_of_generated_fixtures in
result = "id,name\n1234,John"
+
+
+let json_of_generated_fixtures fixtures =
+ let headers = List.hd fixtures in
+ let rows = List.tl fixtures in
+ let json_of_row row =
+ let pairs = List.combine headers row in
+ let json_of_pair (key, value) = "\"" ^ key ^ "\": \"" ^ value ^ "\"" in
+ "{" ^ String.concat ", " (List.map json_of_pair pairs) ^ "}"
+ in
+ "[" ^ String.concat ", " (List.map json_of_row rows) ^ "]"
+
+
+let%test "json_of_generated_fixtures" =
+ let result = [ [ "id"; "name" ]; [ "1234"; "John" ] ] |> json_of_generated_fixtures in
+ result = "[{\"id\": \"1234\", \"name\": \"John\"}]"