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