|
194 | 194 |
|
195 | 195 | test "_, Array" do
|
196 | 196 | output = phlex { div(attribute: []) }
|
197 |
| - assert_equal_html output, %(<div attribute=""></div>) |
| 197 | + assert_equal_html output, %(<div></div>) |
| 198 | +end |
| 199 | + |
| 200 | +test "_, Array(Array)" do |
| 201 | + output = phlex { div(attribute: [[], [], []]) } |
| 202 | + assert_equal_html output, %(<div></div>) |
198 | 203 | end
|
199 | 204 |
|
200 | 205 | test "_, Array(nil)" do
|
201 | 206 | output = phlex { div(attribute: [nil, nil, nil]) }
|
202 |
| - assert_equal_html output, %(<div attribute=""></div>) |
| 207 | + assert_equal_html output, %(<div></div>) |
| 208 | +end |
| 209 | + |
| 210 | +test "_, Array(Array(nil))" do |
| 211 | + output = phlex { div(attribute: [[nil, nil], [nil, nil]]) } |
| 212 | + assert_equal_html output, %(<div></div>) |
| 213 | +end |
| 214 | + |
| 215 | +test "_, Array(Array(nil), nil)" do |
| 216 | + output = phlex { div(attribute: [[nil, nil], nil]) } |
| 217 | + assert_equal_html output, %(<div></div>) |
203 | 218 | end
|
204 | 219 |
|
205 | 220 | test "_, Array(String)" do
|
|
371 | 386 | assert_equal_html output, %(<div data-controller-hello="world"></div>)
|
372 | 387 | end
|
373 | 388 |
|
| 389 | +test "_, Hash(_, Hash(_, nil)" do |
| 390 | + output = phlex { div(data: { controller: { hello: nil } }) } |
| 391 | + assert_equal_html output, %(<div></div>) |
| 392 | +end |
| 393 | + |
374 | 394 | test "_, Hash(_, Phlex::SGML::SafeObject)" do
|
375 | 395 | output = phlex { div(data: { controller: Phlex::SGML::SafeValue.new("Hello") }) }
|
376 | 396 | assert_equal_html output, %(<div data-controller="Hello"></div>)
|
|
386 | 406 | assert_equal_html output, %(<div></div>)
|
387 | 407 | end
|
388 | 408 |
|
| 409 | +test "_, Hash(_, Array)" do |
| 410 | + output = phlex { div(data: { action: [] }) } |
| 411 | + assert_equal_html output, %(<div></div>) |
| 412 | +end |
| 413 | + |
| 414 | +test "_, Hash(_, Array(nil))" do |
| 415 | + output = phlex { div(data: { action: [nil] }) } |
| 416 | + assert_equal_html output, %(<div></div>) |
| 417 | +end |
| 418 | + |
| 419 | +test "_, Hash(_, Set)" do |
| 420 | + output = phlex { div(data: { action: Set[] }) } |
| 421 | + assert_equal_html output, %(<div></div>) |
| 422 | +end |
| 423 | + |
| 424 | +test "_, Hash(_, Set(Set))" do |
| 425 | + output = phlex { div(data: { action: Set[Set[]] }) } |
| 426 | + assert_equal_html output, %(<div></div>) |
| 427 | +end |
| 428 | + |
| 429 | +test "_, Hash(_, Set(nil))" do |
| 430 | + output = phlex { div(data: { action: Set[nil] }) } |
| 431 | + assert_equal_html output, %(<div></div>) |
| 432 | +end |
| 433 | + |
| 434 | +test "_, Hash(_, Set(Set(nil)))" do |
| 435 | + output = phlex { div(data: { action: Set[Set[nil]] }) } |
| 436 | + assert_equal_html output, %(<div></div>) |
| 437 | +end |
| 438 | + |
389 | 439 | test "_, Hash(_, *invalid*)" do
|
390 | 440 | assert_raises(Phlex::ArgumentError) do
|
391 | 441 | phlex { div(data: { controller: Object.new }) }
|
392 | 442 | end
|
393 | 443 | end
|
394 | 444 |
|
| 445 | +test "_, Set" do |
| 446 | + output = phlex { div(attribute: Set[]) } |
| 447 | + assert_equal_html output, %(<div></div>) |
| 448 | +end |
| 449 | + |
395 | 450 | test "_, Set(nil)" do
|
396 | 451 | output = phlex { div(attribute: Set[nil, nil, nil]) }
|
397 |
| - assert_equal_html output, %(<div attribute=""></div>) |
| 452 | + assert_equal_html output, %(<div></div>) |
| 453 | +end |
| 454 | + |
| 455 | +test "_, Set(Set)" do |
| 456 | + output = phlex { div(attribute: Set[Set[]]) } |
| 457 | + assert_equal_html output, %(<div></div>) |
| 458 | +end |
| 459 | + |
| 460 | +test "_, Set(Set(nil))" do |
| 461 | + output = phlex { div(attribute: Set[Set[nil, nil, nil]]) } |
| 462 | + assert_equal_html output, %(<div></div>) |
| 463 | +end |
| 464 | + |
| 465 | +test "_, Set(Set, nil)" do |
| 466 | + output = phlex { div(attribute: Set[Set[], nil]) } |
| 467 | + assert_equal_html output, %(<div></div>) |
| 468 | +end |
| 469 | + |
| 470 | +test "_, Set(Set(nil), nil)" do |
| 471 | + output = phlex { div(attribute: Set[Set[nil], nil]) } |
| 472 | + assert_equal_html output, %(<div></div>) |
398 | 473 | end
|
399 | 474 |
|
400 | 475 | test "_, Set(String)" do
|
|
540 | 615 |
|
541 | 616 | test ":srcset on img with an Array" do
|
542 | 617 | output = phlex { img(srcset: []) }
|
543 |
| - assert_equal_html output, %(<img srcset="">) |
| 618 | + assert_equal_html output, %(<img>) |
544 | 619 |
|
545 | 620 | output = phlex { img(srcset: ["/width=400/image.jpg 1x", "/width=400,dpr=2/image.jpg 2x"]) }
|
546 | 621 | assert_equal_html output, %(<img srcset="/width=400/image.jpg 1x, /width=400%2Cdpr=2/image.jpg 2x">)
|
|
551 | 626 |
|
552 | 627 | test ":media on link with an Array" do
|
553 | 628 | output = phlex { link(media: []) }
|
554 |
| - assert_equal_html output, %(<link media="">) |
| 629 | + assert_equal_html output, %(<link>) |
555 | 630 |
|
556 | 631 | output = phlex { link(media: ["screen", "print"]) }
|
557 | 632 | assert_equal_html output, %(<link media="screen, print">)
|
|
562 | 637 |
|
563 | 638 | test ":sizes on link with an Array" do
|
564 | 639 | output = phlex { link(sizes: []) }
|
565 |
| - assert_equal_html output, %(<link sizes="">) |
| 640 | + assert_equal_html output, %(<link>) |
566 | 641 |
|
567 | 642 | output = phlex { link(sizes: ["16x16", "32x32", "64x64"]) }
|
568 | 643 | assert_equal_html output, %(<link sizes="16x16, 32x32, 64x64">)
|
569 | 644 | end
|
570 | 645 |
|
571 | 646 | test ":imagesrcset on link with an Array when rel is preload and as is image" do
|
572 | 647 | output = phlex { link(imagesrcset: [], rel: "preload", as: "image") }
|
573 |
| - assert_equal_html output, %(<link imagesrcset="" rel="preload" as="image">) |
| 648 | + assert_equal_html output, %(<link rel="preload" as="image">) |
574 | 649 |
|
575 | 650 | output = phlex { link(imagesrcset: ["image.jpg 1x", "[email protected] 2x"], rel: "preload", as: "image") }
|
576 | 651 | assert_equal_html output, %(<link imagesrcset="image.jpg 1x, [email protected] 2x" rel="preload" as="image">)
|
|
584 | 659 |
|
585 | 660 | test ":accept on input with array when type is file" do
|
586 | 661 | output = phlex { input(accept: [], type: "file") }
|
587 |
| - assert_equal_html output, %(<input accept="" type="file">) |
| 662 | + assert_equal_html output, %(<input type="file">) |
588 | 663 |
|
589 | 664 | output = phlex { input(accept: ["image/jpeg", "image/png"], type: "file") }
|
590 | 665 | assert_equal_html output, %(<input accept="image/jpeg, image/png" type="file">)
|
|
0 commit comments