A Discord API Library for Gleam! 馃挮
1import gleam/http
2import gleam/http/request
3import gleam/json
4import gleam/option.{Some}
5import gleam/time/timestamp
6import gleeunit
7import gleeunit/should
8import grom
9import grom/file.{File}
10import grom/internal/rest
11import grom/snowflake
12import grom/user/current_user
13
14pub fn main() {
15 gleeunit.main()
16}
17
18pub fn encode_modify_current_test() {
19 current_user.Modify(..current_user.new_modify(), username: Some("fo1o"))
20 |> current_user.modify_to_json
21 |> json.to_string
22 |> should.equal("{\"username\":\"fo1o\"}")
23}
24
25pub fn multipart_request_test() {
26 let expected =
27 rest.new_request(grom.Client("token"), http.Post, "/")
28 |> request.set_body(<<
29 "--gleam_multipart_form\r\n":utf8,
30 "Content-Disposition: form-data; name=\"payload_json\"\r\n":utf8,
31 "Content-Type: application/json\r\n\r\n":utf8, "{}\r\n":utf8,
32 "--gleam_multipart_form\r\n":utf8,
33 "Content-Disposition: form-data; name=\"files[0]\"; filename=\"name\"\r\n":utf8,
34 "Content-Type: image/png\r\n\r\n":utf8, "test\r\n":utf8,
35 "--gleam_multipart_form\r\n":utf8,
36 "Content-Disposition: form-data; name=\"files[1]\"; filename=\"name2\"\r\n":utf8,
37 "Content-Type: image/jpeg\r\n\r\n":utf8, "jpeg\r\n":utf8,
38 "--gleam_multipart_form--":utf8,
39 >>)
40 |> request.set_header(
41 "content-type",
42 "multipart/form-data; boundary=gleam_multipart_form",
43 )
44
45 let result =
46 rest.new_multipart_request(
47 grom.Client("token"),
48 http.Post,
49 "/",
50 json.object([]),
51 [
52 File("name", "image/png", <<"test":utf8>>),
53 File("name2", "image/jpeg", <<"jpeg":utf8>>),
54 ],
55 )
56
57 result
58 |> should.equal(expected)
59}
60
61pub fn get_creation_timestamp_test() {
62 let expected = timestamp.from_unix_seconds(1_612_894_569)
63 let assert Ok(actual) = snowflake.get_creation_timestamp("808763186811633735")
64 assert actual == expected
65}