Current section
Files
Jump to
Current section
Files
src/telega@testing@factory.erl
-module(telega@testing@factory).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/telega/testing/factory.gleam").
-export([bot_user/0, user/0, user_with/2, chat/0, chat_with/2, message_with/3, message/1, raw_update_with/2, raw_update/1, text_update_with/3, text_update/1, command_with/2, command/1, command_update_with/4, command_update/1, photo_size_with/1, photo_size/0, audio_with/2, audio/0, video_with/2, video/0, voice_with/2, voice/0, photo_message/1, video_message/1, audio_message/1, voice_message/1, photo_update_with/3, photo_update/0, video_update_with/3, video_update/0, audio_update_with/3, audio_update/0, voice_update_with/3, voice_update/0, message_update_with/3, message_update/1, callback_query_update_with/3, callback_query_update/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Data factories for creating test instances of Telegram types.\n"
"\n"
" All functions return deterministic default values, making tests\n"
" reproducible and easy to write. Use `_with` variants for customization.\n"
"\n"
" ```gleam\n"
" import telega/testing/factory\n"
"\n"
" let update = factory.text_update(\"Hello\")\n"
" let cmd = factory.command_update(\"start\")\n"
" ```\n"
).
-file("src/telega/testing/factory.gleam", 27).
?DOC(" Creates a bot user with sensible defaults.\n").
-spec bot_user() -> telega@model@types:user().
bot_user() ->
{user,
1000000,
true,
<<"TestBot"/utf8>>,
none,
{some, <<"testbot"/utf8>>},
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none}.
-file("src/telega/testing/factory.gleam", 51).
?DOC(" Creates a regular (non-bot) user with sensible defaults.\n").
-spec user() -> telega@model@types:user().
user() ->
{user,
987654321,
false,
<<"TestUser"/utf8>>,
none,
{some, <<"testuser"/utf8>>},
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none}.
-file("src/telega/testing/factory.gleam", 75).
?DOC(" Creates a user with custom id and first_name.\n").
-spec user_with(integer(), binary()) -> telega@model@types:user().
user_with(Id, First_name) ->
_record = user(),
{user,
Id,
erlang:element(3, _record),
First_name,
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record)}.
-file("src/telega/testing/factory.gleam", 80).
?DOC(" Creates a private chat with sensible defaults.\n").
-spec chat() -> telega@model@types:chat().
chat() ->
{chat,
123456789,
<<"private"/utf8>>,
none,
none,
{some, <<"TestUser"/utf8>>},
none,
none,
none}.
-file("src/telega/testing/factory.gleam", 94).
?DOC(" Creates a chat with custom id and type.\n").
-spec chat_with(integer(), binary()) -> telega@model@types:chat().
chat_with(Id, Type_) ->
_record = chat(),
{chat,
Id,
Type_,
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record)}.
-file("src/telega/testing/factory.gleam", 104).
?DOC(" Creates a message with custom text, from user, and chat.\n").
-spec message_with(
binary(),
telega@model@types:user(),
telega@model@types:chat()
) -> telega@model@types:message().
message_with(Text, From, Chat) ->
{message,
1,
none,
none,
{some, From},
none,
none,
none,
none,
none,
none,
1640995200,
none,
none,
Chat,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
{some, Text},
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none}.
-file("src/telega/testing/factory.gleam", 99).
?DOC(" Creates a message with the given text, using default user and chat.\n").
-spec message(binary()) -> telega@model@types:message().
message(Text) ->
message_with(Text, user(), chat()).
-file("src/telega/testing/factory.gleam", 238).
?DOC(" Creates a raw `types.Update` with custom update_id.\n").
-spec raw_update_with(telega@model@types:message(), integer()) -> telega@model@types:update().
raw_update_with(Message, Update_id) ->
{update,
Update_id,
{some, Message},
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none}.
-file("src/telega/testing/factory.gleam", 233).
?DOC(" Creates a raw `types.Update` wrapping a message.\n").
-spec raw_update(telega@model@types:message()) -> telega@model@types:update().
raw_update(Message) ->
raw_update_with(Message, 1).
-file("src/telega/testing/factory.gleam", 279).
?DOC(" Creates a typed `TextUpdate` with custom from_id and chat_id.\n").
-spec text_update_with(binary(), integer(), integer()) -> telega@update:update().
text_update_with(Text, From_id, Chat_id) ->
From = user_with(From_id, <<"TestUser"/utf8>>),
Chat = chat_with(Chat_id, <<"private"/utf8>>),
Msg = message_with(Text, From, Chat),
{text_update, From_id, Chat_id, Text, Msg, raw_update(Msg)}.
-file("src/telega/testing/factory.gleam", 274).
?DOC(" Creates a typed `TextUpdate` with default user/chat IDs.\n").
-spec text_update(binary()) -> telega@update:update().
text_update(Text) ->
text_update_with(Text, 987654321, 123456789).
-file("src/telega/testing/factory.gleam", 302).
?DOC(" Creates a `Command` record with a payload.\n").
-spec command_with(binary(), gleam@option:option(binary())) -> telega@update:command().
command_with(Cmd, Payload) ->
{command, <<"/"/utf8, Cmd/binary>>, Cmd, Payload}.
-file("src/telega/testing/factory.gleam", 297).
?DOC(" Creates a `Command` record.\n").
-spec command(binary()) -> telega@update:command().
command(Cmd) ->
command_with(Cmd, none).
-file("src/telega/testing/factory.gleam", 320).
?DOC(" Creates a typed `CommandUpdate` with custom payload, from_id, and chat_id.\n").
-spec command_update_with(
binary(),
gleam@option:option(binary()),
integer(),
integer()
) -> telega@update:update().
command_update_with(Cmd, Payload, From_id, Chat_id) ->
From = user_with(From_id, <<"TestUser"/utf8>>),
Chat = chat_with(Chat_id, <<"private"/utf8>>),
Msg = message_with(<<"/"/utf8, Cmd/binary>>, From, Chat),
Command = command_with(Cmd, Payload),
{command_update, From_id, Chat_id, Command, Msg, raw_update(Msg)}.
-file("src/telega/testing/factory.gleam", 310).
?DOC(" Creates a typed `CommandUpdate` with default user/chat IDs.\n").
-spec command_update(binary()) -> telega@update:update().
command_update(Cmd) ->
command_update_with(Cmd, none, 987654321, 123456789).
-file("src/telega/testing/factory.gleam", 349).
?DOC(" Creates a `PhotoSize` with a custom file_id.\n").
-spec photo_size_with(binary()) -> telega@model@types:photo_size().
photo_size_with(File_id) ->
{photo_size,
File_id,
<<File_id/binary, "_unique"/utf8>>,
640,
480,
{some, 12345}}.
-file("src/telega/testing/factory.gleam", 344).
?DOC(" Creates a `PhotoSize` with sensible defaults.\n").
-spec photo_size() -> telega@model@types:photo_size().
photo_size() ->
photo_size_with(<<"test_photo"/utf8>>).
-file("src/telega/testing/factory.gleam", 365).
?DOC(" Creates an `Audio` with custom file_id and duration.\n").
-spec audio_with(binary(), integer()) -> telega@model@types:audio().
audio_with(File_id, Duration) ->
{audio,
File_id,
<<File_id/binary, "_unique"/utf8>>,
Duration,
none,
none,
none,
{some, <<"audio/mpeg"/utf8>>},
none,
none}.
-file("src/telega/testing/factory.gleam", 360).
?DOC(" Creates an `Audio` with sensible defaults.\n").
-spec audio() -> telega@model@types:audio().
audio() ->
audio_with(<<"test_audio"/utf8>>, 30).
-file("src/telega/testing/factory.gleam", 388).
?DOC(" Creates a `Video` with custom file_id and duration.\n").
-spec video_with(binary(), integer()) -> telega@model@types:video().
video_with(File_id, Duration) ->
{video,
File_id,
<<File_id/binary, "_unique"/utf8>>,
1280,
720,
Duration,
none,
none,
none,
none,
none,
{some, <<"video/mp4"/utf8>>},
none}.
-file("src/telega/testing/factory.gleam", 383).
?DOC(" Creates a `Video` with sensible defaults.\n").
-spec video() -> telega@model@types:video().
video() ->
video_with(<<"test_video"/utf8>>, 60).
-file("src/telega/testing/factory.gleam", 414).
?DOC(" Creates a `Voice` with custom file_id and duration.\n").
-spec voice_with(binary(), integer()) -> telega@model@types:voice().
voice_with(File_id, Duration) ->
{voice,
File_id,
<<File_id/binary, "_unique"/utf8>>,
Duration,
{some, <<"audio/ogg"/utf8>>},
none}.
-file("src/telega/testing/factory.gleam", 409).
?DOC(" Creates a `Voice` with sensible defaults.\n").
-spec voice() -> telega@model@types:voice().
voice() ->
voice_with(<<"test_voice"/utf8>>, 5).
-file("src/telega/testing/factory.gleam", 432).
?DOC(" Creates a message with photos attached.\n").
-spec photo_message(list(telega@model@types:photo_size())) -> telega@model@types:message().
photo_message(Photos) ->
_record = message(<<""/utf8>>),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
erlang:element(42, _record),
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
{some, Photos},
erlang:element(47, _record),
erlang:element(48, _record),
erlang:element(49, _record),
erlang:element(50, _record),
erlang:element(51, _record),
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}.
-file("src/telega/testing/factory.gleam", 437).
?DOC(" Creates a message with a video attached.\n").
-spec video_message(telega@model@types:video()) -> telega@model@types:message().
video_message(Video) ->
_record = message(<<""/utf8>>),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
erlang:element(42, _record),
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
erlang:element(46, _record),
erlang:element(47, _record),
erlang:element(48, _record),
{some, Video},
erlang:element(50, _record),
erlang:element(51, _record),
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}.
-file("src/telega/testing/factory.gleam", 442).
?DOC(" Creates a message with audio attached.\n").
-spec audio_message(telega@model@types:audio()) -> telega@model@types:message().
audio_message(Audio) ->
_record = message(<<""/utf8>>),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
{some, Audio},
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
erlang:element(46, _record),
erlang:element(47, _record),
erlang:element(48, _record),
erlang:element(49, _record),
erlang:element(50, _record),
erlang:element(51, _record),
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}.
-file("src/telega/testing/factory.gleam", 447).
?DOC(" Creates a message with a voice note attached.\n").
-spec voice_message(telega@model@types:voice()) -> telega@model@types:message().
voice_message(Voice) ->
_record = message(<<""/utf8>>),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
erlang:element(42, _record),
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
erlang:element(46, _record),
erlang:element(47, _record),
erlang:element(48, _record),
erlang:element(49, _record),
erlang:element(50, _record),
{some, Voice},
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}.
-file("src/telega/testing/factory.gleam", 465).
?DOC(" Creates a typed `PhotoUpdate` with custom photos, from_id, and chat_id.\n").
-spec photo_update_with(
list(telega@model@types:photo_size()),
integer(),
integer()
) -> telega@update:update().
photo_update_with(Photos, From_id, Chat_id) ->
From = user_with(From_id, <<"TestUser"/utf8>>),
Chat = chat_with(Chat_id, <<"private"/utf8>>),
Msg = begin
_record = message_with(<<""/utf8>>, From, Chat),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
erlang:element(42, _record),
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
{some, Photos},
erlang:element(47, _record),
erlang:element(48, _record),
erlang:element(49, _record),
erlang:element(50, _record),
erlang:element(51, _record),
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}
end,
{photo_update, From_id, Chat_id, Photos, Msg, raw_update(Msg)}.
-file("src/telega/testing/factory.gleam", 456).
?DOC(" Creates a typed `PhotoUpdate` with default user/chat IDs.\n").
-spec photo_update() -> telega@update:update().
photo_update() ->
photo_update_with([photo_size()], 987654321, 123456789).
-file("src/telega/testing/factory.gleam", 497).
?DOC(" Creates a typed `VideoUpdate` with custom video, from_id, and chat_id.\n").
-spec video_update_with(telega@model@types:video(), integer(), integer()) -> telega@update:update().
video_update_with(Video, From_id, Chat_id) ->
From = user_with(From_id, <<"TestUser"/utf8>>),
Chat = chat_with(Chat_id, <<"private"/utf8>>),
Msg = begin
_record = message_with(<<""/utf8>>, From, Chat),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
erlang:element(42, _record),
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
erlang:element(46, _record),
erlang:element(47, _record),
erlang:element(48, _record),
{some, Video},
erlang:element(50, _record),
erlang:element(51, _record),
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}
end,
{video_update, From_id, Chat_id, Video, Msg, raw_update(Msg)}.
-file("src/telega/testing/factory.gleam", 488).
?DOC(" Creates a typed `VideoUpdate` with default user/chat IDs.\n").
-spec video_update() -> telega@update:update().
video_update() ->
video_update_with(video(), 987654321, 123456789).
-file("src/telega/testing/factory.gleam", 529).
?DOC(" Creates a typed `AudioUpdate` with custom audio, from_id, and chat_id.\n").
-spec audio_update_with(telega@model@types:audio(), integer(), integer()) -> telega@update:update().
audio_update_with(Audio, From_id, Chat_id) ->
From = user_with(From_id, <<"TestUser"/utf8>>),
Chat = chat_with(Chat_id, <<"private"/utf8>>),
Msg = begin
_record = message_with(<<""/utf8>>, From, Chat),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
{some, Audio},
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
erlang:element(46, _record),
erlang:element(47, _record),
erlang:element(48, _record),
erlang:element(49, _record),
erlang:element(50, _record),
erlang:element(51, _record),
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}
end,
{audio_update, From_id, Chat_id, Audio, Msg, raw_update(Msg)}.
-file("src/telega/testing/factory.gleam", 520).
?DOC(" Creates a typed `AudioUpdate` with default user/chat IDs.\n").
-spec audio_update() -> telega@update:update().
audio_update() ->
audio_update_with(audio(), 987654321, 123456789).
-file("src/telega/testing/factory.gleam", 561).
?DOC(" Creates a typed `VoiceUpdate` with custom voice, from_id, and chat_id.\n").
-spec voice_update_with(telega@model@types:voice(), integer(), integer()) -> telega@update:update().
voice_update_with(Voice, From_id, Chat_id) ->
From = user_with(From_id, <<"TestUser"/utf8>>),
Chat = chat_with(Chat_id, <<"private"/utf8>>),
Msg = begin
_record = message_with(<<""/utf8>>, From, Chat),
{message,
erlang:element(2, _record),
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
erlang:element(16, _record),
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record),
erlang:element(29, _record),
erlang:element(30, _record),
erlang:element(31, _record),
erlang:element(32, _record),
erlang:element(33, _record),
erlang:element(34, _record),
none,
erlang:element(36, _record),
erlang:element(37, _record),
erlang:element(38, _record),
erlang:element(39, _record),
erlang:element(40, _record),
erlang:element(41, _record),
erlang:element(42, _record),
erlang:element(43, _record),
erlang:element(44, _record),
erlang:element(45, _record),
erlang:element(46, _record),
erlang:element(47, _record),
erlang:element(48, _record),
erlang:element(49, _record),
erlang:element(50, _record),
{some, Voice},
erlang:element(52, _record),
erlang:element(53, _record),
erlang:element(54, _record),
erlang:element(55, _record),
erlang:element(56, _record),
erlang:element(57, _record),
erlang:element(58, _record),
erlang:element(59, _record),
erlang:element(60, _record),
erlang:element(61, _record),
erlang:element(62, _record),
erlang:element(63, _record),
erlang:element(64, _record),
erlang:element(65, _record),
erlang:element(66, _record),
erlang:element(67, _record),
erlang:element(68, _record),
erlang:element(69, _record),
erlang:element(70, _record),
erlang:element(71, _record),
erlang:element(72, _record),
erlang:element(73, _record),
erlang:element(74, _record),
erlang:element(75, _record),
erlang:element(76, _record),
erlang:element(77, _record),
erlang:element(78, _record),
erlang:element(79, _record),
erlang:element(80, _record),
erlang:element(81, _record),
erlang:element(82, _record),
erlang:element(83, _record),
erlang:element(84, _record),
erlang:element(85, _record),
erlang:element(86, _record),
erlang:element(87, _record),
erlang:element(88, _record),
erlang:element(89, _record),
erlang:element(90, _record),
erlang:element(91, _record),
erlang:element(92, _record),
erlang:element(93, _record),
erlang:element(94, _record),
erlang:element(95, _record),
erlang:element(96, _record),
erlang:element(97, _record),
erlang:element(98, _record),
erlang:element(99, _record),
erlang:element(100, _record),
erlang:element(101, _record),
erlang:element(102, _record),
erlang:element(103, _record),
erlang:element(104, _record),
erlang:element(105, _record),
erlang:element(106, _record),
erlang:element(107, _record),
erlang:element(108, _record),
erlang:element(109, _record),
erlang:element(110, _record),
erlang:element(111, _record),
erlang:element(112, _record),
erlang:element(113, _record),
erlang:element(114, _record),
erlang:element(115, _record),
erlang:element(116, _record),
erlang:element(117, _record),
erlang:element(118, _record),
erlang:element(119, _record),
erlang:element(120, _record)}
end,
{voice_update, From_id, Chat_id, Voice, Msg, raw_update(Msg)}.
-file("src/telega/testing/factory.gleam", 552).
?DOC(" Creates a typed `VoiceUpdate` with default user/chat IDs.\n").
-spec voice_update() -> telega@update:update().
voice_update() ->
voice_update_with(voice(), 987654321, 123456789).
-file("src/telega/testing/factory.gleam", 593).
?DOC(" Creates a typed `MessageUpdate` with custom from_id and chat_id.\n").
-spec message_update_with(telega@model@types:message(), integer(), integer()) -> telega@update:update().
message_update_with(Message, From_id, Chat_id) ->
{message_update, From_id, Chat_id, Message, raw_update(Message)}.
-file("src/telega/testing/factory.gleam", 584).
?DOC(" Creates a typed `MessageUpdate` with default user/chat IDs.\n").
-spec message_update(telega@model@types:message()) -> telega@update:update().
message_update(Message) ->
message_update_with(Message, 987654321, 123456789).
-file("src/telega/testing/factory.gleam", 611).
?DOC(" Creates a typed `CallbackQueryUpdate` with custom from_id and chat_id.\n").
-spec callback_query_update_with(binary(), integer(), integer()) -> telega@update:update().
callback_query_update_with(Data, From_id, Chat_id) ->
From = user_with(From_id, <<"TestUser"/utf8>>),
Chat = chat_with(Chat_id, <<"private"/utf8>>),
Msg = message_with(<<""/utf8>>, From, Chat),
Query = {callback_query,
<<"test_callback_query"/utf8>>,
From,
{some, {message_maybe_inaccessible_message, Msg}},
none,
<<"test_chat_instance"/utf8>>,
{some, Data},
none},
Raw = begin
_record = raw_update(Msg),
{update,
erlang:element(2, _record),
none,
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record),
erlang:element(9, _record),
erlang:element(10, _record),
erlang:element(11, _record),
erlang:element(12, _record),
erlang:element(13, _record),
erlang:element(14, _record),
erlang:element(15, _record),
{some, Query},
erlang:element(17, _record),
erlang:element(18, _record),
erlang:element(19, _record),
erlang:element(20, _record),
erlang:element(21, _record),
erlang:element(22, _record),
erlang:element(23, _record),
erlang:element(24, _record),
erlang:element(25, _record),
erlang:element(26, _record),
erlang:element(27, _record),
erlang:element(28, _record)}
end,
{callback_query_update, From_id, Chat_id, Query, Raw}.
-file("src/telega/testing/factory.gleam", 602).
?DOC(" Creates a typed `CallbackQueryUpdate` with default user/chat IDs.\n").
-spec callback_query_update(binary()) -> telega@update:update().
callback_query_update(Data) ->
callback_query_update_with(Data, 987654321, 123456789).