Comparison

spec/util_dataforms_spec.lua @ 11879:b8b889ba8d27

util.dataforms: Scope integer handling tests So they're separate from the datetime tests, and any future validation tests
author Kim Alvefur <zash@zash.se>
date Tue, 26 Oct 2021 15:41:54 +0200
parent 11878:bf6706057283
child 11880:d30c81b875f2
comparison
equal deleted inserted replaced
11878:bf6706057283 11879:b8b889ba8d27
426 assert.equal("1", x:find "field/value#"); 426 assert.equal("1", x:find "field/value#");
427 end); 427 end);
428 end) 428 end)
429 429
430 describe("datatype validation", function () 430 describe("datatype validation", function ()
431 local f = dataforms.new { 431 describe("integer", function ()
432 { 432
433 name = "number", 433 local f = dataforms.new {
434 type = "text-single", 434 {
435 datatype = "xs:integer", 435 name = "number",
436 range_min = -10, 436 type = "text-single",
437 range_max = 10, 437 datatype = "xs:integer",
438 }, 438 range_min = -10,
439 }; 439 range_max = 10,
440 440 },
441 it("integer roundtrip works", function () 441 };
442 local d = f:data(f:form({number = 1})); 442
443 assert.equal(1, d.number); 443 it("roundtrip works", function ()
444 end); 444 local d = f:data(f:form({number = 1}));
445 445 assert.equal(1, d.number);
446 it("integer error handling works", function () 446 end);
447 local d,e = f:data(f:form({number = "nan"})); 447
448 assert.not_equal(1, d.number); 448 it("error handling works", function ()
449 assert.table(e); 449 local d,e = f:data(f:form({number = "nan"}));
450 assert.string(e.number); 450 assert.not_equal(1, d.number);
451 end); 451 assert.table(e);
452 452 assert.string(e.number);
453 it("works", function () 453 end);
454 local d,e = f:data(f:form({number = 100})); 454
455 assert.not_equal(100, d.number); 455 it("bounds-cheking work works", function ()
456 assert.table(e); 456 local d,e = f:data(f:form({number = 100}));
457 assert.string(e.number); 457 assert.not_equal(100, d.number);
458 end); 458 assert.table(e);
459 assert.string(e.number);
460 end);
461 end)
459 462
460 describe("datetime", function () 463 describe("datetime", function ()
461 local f = dataforms.new { { name = "when"; type = "text-single"; datatype = "xs:dateTime" } } -- luacheck: ignore 431 464 local f = dataforms.new { { name = "when"; type = "text-single"; datatype = "xs:dateTime" } }
462 465
463 it("works", function () 466 it("works", function ()
464 local x = f:form({ when = 1219439340 }); 467 local x = f:form({ when = 1219439340 });
465 assert.equal("2008-08-22T21:09:00Z", x:find("field/value#")) 468 assert.equal("2008-08-22T21:09:00Z", x:find("field/value#"))
466 local d, e = f:data(x); 469 local d, e = f:data(x);