# Tests copied from
# https://github.com/lifion/lifion-aws-event-stream/blob/develop/lib/index.test.js
# https://github.com/lifion/lifion-aws-event-stream/blob/develop/lib/index.test.json
test_that("can parse empty object", {
bytes <- hex_to_raw("000000100000000005c248eb7d98c8ff")
expect_equal(
parse_aws_event(bytes),
list(headers = list(), body = "")
)
})
test_that("can return various types of header", {
bytes <- hex_to_raw("0000001500000001ba25f70d03666f6f013aa3e0d6")
expect_equal(parse_aws_event(bytes)$headers, list(foo = FALSE))
bytes <- hex_to_raw("0000001500000001ba25f70d03666f6f004da4d040")
expect_equal(parse_aws_event(bytes)$headers, list(foo = TRUE))
# byte
bytes <- hex_to_raw("0000001600000001fd858ddd03666f6f02ffa44bfd93")
expect_equal(parse_aws_event(bytes)$headers, list(foo = 255))
# short
bytes <- hex_to_raw("0000001700000001c0e5a46d03666f6f03fffff3b59291")
expect_equal(parse_aws_event(bytes)$headers, list(foo = 65535))
# integer
bytes <- hex_to_raw("00000019000000017fd51a0c03666f6f04ffffffff853b65dd")
expect_equal(parse_aws_event(bytes)$headers, list(foo = 4294967295))
# long
bytes <- hex_to_raw("0000001d000000018a55bccc03666f6f050000ffffffffffff6b03c255")
expected <- structure(1.390671161567e-309, class = "integer64")
expect_equal(parse_aws_event(bytes)$headers, list(foo = expected))
# byte array
bytes <- hex_to_raw("0000001c00000001b735957c03666f6f0600050102030405cdda4038")
expect_equal(parse_aws_event(bytes)$headers, list(foo = as.raw(1:5)))
# character
bytes <- hex_to_raw("0000001a00000001387560dc03666f6f0700036261725bb3cecf")
expect_equal(parse_aws_event(bytes)$headers, list(foo = "bar"))
# UUID
bytes <- hex_to_raw("00000025000000011b044f8b03666f6f093bfdac5cfe6c402983bfc1de7819f5316056148a")
expect_equal(parse_aws_event(
bytes
)$headers, list(foo = "3bfdac5cfe6c402983bfc1de7819f531"))
})
test_that("unknown header triggers error", {
bytes <- hex_to_raw("0000001500000001ba25f70d03666f6fff60a63fcd")
expect_snapshot(parse_aws_event(bytes), error = TRUE)
})
test_that("json content type automatically parsed", {
bytes <- hex_to_raw("
000001c20000005bc1123f0b0b3a6576656e742d74797065070015537562736372696265546f
53686172644576656e740d3a636f6e74656e742d747970650700106170706c69636174696f6e
2f6a736f6e0d3a6d6573736167652d747970650700056576656e747b22436f6e74696e756174
696f6e53657175656e63654e756d626572223a22343935383836333037393634323435313235
3936363136333437353239313133373435393934373336323937343734373039373832353330
222c224d696c6c6973426568696e644c6174657374223a302c225265636f726473223a5b7b22
417070726f78696d6174654172726976616c54696d657374616d70223a312e35333831363032
313936333645392c2244617461223a225632567a62475635222c22456e6372797074696f6e54
797065223a6e756c6c2c22506172746974696f6e4b6579223a2231306463633930322d633839
632d343036372d623433362d303566383863306662356566222c2253657175656e63654e756d
626572223a223439353838363330373936343234353132353936363136333437353239313133
373435393934373336323937343734373039373832353330227d5d7dd84c02f3
")
parsed <- parse_aws_event(bytes)
expect_type(parsed$body, "list")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.