Mercurial > prosody-hg
comparison spec/util_datetime_spec.lua @ 12755:a09dacf660d2
util.datetime: Add some missing test cases
You guessed it, mutation testing.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 08 Oct 2022 23:55:22 +0100 |
| parents | 4c1d3f817063 |
| children |
comparison
equal
deleted
inserted
replaced
| 12754:a92ca737d05f | 12755:a09dacf660d2 |
|---|---|
| 36 end); | 36 end); |
| 37 it("should work", function () | 37 it("should work", function () |
| 38 assert.equals("22:04:05", time(1136239445)); | 38 assert.equals("22:04:05", time(1136239445)); |
| 39 end); | 39 end); |
| 40 it("should handle precision", function () | 40 it("should handle precision", function () |
| 41 assert.equal("14:46:31.158200", time(1660488391.1582)) | |
| 41 assert.equal("14:46:32.158200", time(1660488392.1582)) | 42 assert.equal("14:46:32.158200", time(1660488392.1582)) |
| 43 assert.equal("14:46:33.158200", time(1660488393.1582)) | |
| 44 assert.equal("14:46:33.999900", time(1660488393.9999)) | |
| 42 end) | 45 end) |
| 43 end); | 46 end); |
| 44 describe("#datetime", function () | 47 describe("#datetime", function () |
| 45 local datetime = util_datetime.datetime; | 48 local datetime = util_datetime.datetime; |
| 46 it("should exist", function () | 49 it("should exist", function () |
| 55 end); | 58 end); |
| 56 it("should work", function () | 59 it("should work", function () |
| 57 assert.equals("2006-01-02T22:04:05Z", datetime(1136239445)); | 60 assert.equals("2006-01-02T22:04:05Z", datetime(1136239445)); |
| 58 end); | 61 end); |
| 59 it("should handle precision", function () | 62 it("should handle precision", function () |
| 63 assert.equal("2022-08-14T14:46:31.158200Z", datetime(1660488391.1582)) | |
| 60 assert.equal("2022-08-14T14:46:32.158200Z", datetime(1660488392.1582)) | 64 assert.equal("2022-08-14T14:46:32.158200Z", datetime(1660488392.1582)) |
| 65 assert.equal("2022-08-14T14:46:33.158200Z", datetime(1660488393.1582)) | |
| 66 assert.equal("2022-08-14T14:46:33.999900Z", datetime(1660488393.9999)) | |
| 61 end) | 67 end) |
| 62 end); | 68 end); |
| 63 describe("#legacy", function () | 69 describe("#legacy", function () |
| 64 local legacy = util_datetime.legacy; | 70 local legacy = util_datetime.legacy; |
| 65 it("should exist", function () | 71 it("should exist", function () |
| 66 assert.is_function(legacy); | 72 assert.is_function(legacy); |
| 73 end); | |
| 74 it("should not add precision", function () | |
| 75 assert.equal("20220814T14:46:31", legacy(1660488391.1582)); | |
| 67 end); | 76 end); |
| 68 end); | 77 end); |
| 69 describe("#parse", function () | 78 describe("#parse", function () |
| 70 local parse = util_datetime.parse; | 79 local parse = util_datetime.parse; |
| 71 it("should exist", function () | 80 it("should exist", function () |
| 74 it("should work", function () | 83 it("should work", function () |
| 75 -- Timestamp used by Go | 84 -- Timestamp used by Go |
| 76 assert.equals(1511114293, parse("2017-11-19T17:58:13Z")); | 85 assert.equals(1511114293, parse("2017-11-19T17:58:13Z")); |
| 77 assert.equals(1511114330, parse("2017-11-19T18:58:50+0100")); | 86 assert.equals(1511114330, parse("2017-11-19T18:58:50+0100")); |
| 78 assert.equals(1136239445, parse("2006-01-02T15:04:05-0700")); | 87 assert.equals(1136239445, parse("2006-01-02T15:04:05-0700")); |
| 88 assert.equals(1136239445, parse("2006-01-02T15:04:05-07")); | |
| 79 end); | 89 end); |
| 80 it("should handle timezones", function () | 90 it("should handle timezones", function () |
| 81 -- https://xmpp.org/extensions/xep-0082.html#example-2 and 3 | 91 -- https://xmpp.org/extensions/xep-0082.html#example-2 and 3 |
| 82 assert.equals(parse("1969-07-21T02:56:15Z"), parse("1969-07-20T21:56:15-05:00")); | 92 assert.equals(parse("1969-07-21T02:56:15Z"), parse("1969-07-20T21:56:15-05:00")); |
| 83 end); | 93 end); |
| 84 it("should handle precision", function () | 94 it("should handle precision", function () |
| 85 -- floating point comparison is not an exact science | 95 -- floating point comparison is not an exact science |
| 86 assert.truthy(math.abs(1660488392.1582 - parse("2022-08-14T14:46:32.158200Z")) < 0.001) | 96 assert.truthy(math.abs(1660488392.1582 - parse("2022-08-14T14:46:32.158200Z")) < 0.001) |
| 87 end) | 97 end) |
| 98 it("should return nil when given invalid inputs", function () | |
| 99 assert.is_nil(parse(nil)); | |
| 100 assert.is_nil(parse("hello world")); | |
| 101 assert.is_nil(parse("2017-11-19T18:58:50$0100")); | |
| 102 end); | |
| 88 end); | 103 end); |
| 89 end); | 104 end); |
