test: add unit tests
This commit is contained in:
@@ -0,0 +1,65 @@
|
|||||||
|
import gleam/string
|
||||||
|
import gleeunit
|
||||||
|
import gleeunit/should
|
||||||
|
import teotipi
|
||||||
|
|
||||||
|
pub fn main() -> Nil {
|
||||||
|
gleeunit.main()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn totp_string_test() {
|
||||||
|
"GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ"
|
||||||
|
|> teotipi.totp_string
|
||||||
|
|> should.be_ok
|
||||||
|
|> string.length
|
||||||
|
|> should.equal(6)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn totp_string_padding_test() {
|
||||||
|
"GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ"
|
||||||
|
|> teotipi.totp_string
|
||||||
|
|> should.be_ok
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn totp_string_invalid_secret_test() {
|
||||||
|
teotipi.totp_string("INVALID!!!")
|
||||||
|
|> should.be_error
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn totp_function_test() {
|
||||||
|
let code =
|
||||||
|
"GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ"
|
||||||
|
|> teotipi.totp
|
||||||
|
|> should.be_ok
|
||||||
|
|
||||||
|
should.be_true(code > 0)
|
||||||
|
should.be_true(code < 1_000_000)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn totp_invalid_secret_test() {
|
||||||
|
teotipi.totp("INVALID!!!")
|
||||||
|
|> should.be_error
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn totp_consistency_test() {
|
||||||
|
let secret = "GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ"
|
||||||
|
let result1 = teotipi.totp(secret)
|
||||||
|
let result2 = teotipi.totp(secret)
|
||||||
|
|
||||||
|
should.equal(result1, result2)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn totp_different_secrets_test() {
|
||||||
|
let code1 =
|
||||||
|
"GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ"
|
||||||
|
|> teotipi.totp
|
||||||
|
|> should.be_ok
|
||||||
|
|
||||||
|
let code2 =
|
||||||
|
"JBSWY3DPEHPK3PXPJBSWY3DPEHPK3PXP"
|
||||||
|
|> teotipi.totp
|
||||||
|
|> should.be_ok
|
||||||
|
|
||||||
|
should.be_true(code1 > 0)
|
||||||
|
should.be_true(code2 > 0)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user