github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/examples/gno.land/r/demo/microblog/microblog_test.gno (about)

     1  package microblog
     2  
     3  import (
     4  	"log"
     5  	"std"
     6  	"strings"
     7  	"testing"
     8  
     9  	"gno.land/p/demo/avl"
    10  	"gno.land/p/demo/microblog"
    11  	"gno.land/p/demo/testutils"
    12  )
    13  
    14  func TestMicroblog(t *testing.T) {
    15  	const (
    16  		author1 std.Address = testutils.TestAddress("author1")
    17  		author2 std.Address = testutils.TestAddress("author2")
    18  	)
    19  
    20  	std.TestSetOrigCaller(author1)
    21  
    22  	if Render("/wrongpath") != "404" {
    23  		t.Fatalf("rendering not giving 404")
    24  	}
    25  	if Render("") == "404" {
    26  		t.Fatalf("rendering / should not give 404")
    27  	}
    28  	if err := m.NewPost("goodbyte, web2"); err != nil {
    29  		t.Fatalf("could not create post")
    30  	}
    31  	if _, err := m.GetPage(author1.String()); err != nil {
    32  		t.Fatalf("silo should exist")
    33  	}
    34  	if _, err := m.GetPage("no such author"); err == nil {
    35  		t.Fatalf("silo should not exist")
    36  	}
    37  
    38  	std.TestSetOrigCaller(author2)
    39  
    40  	if err := m.NewPost("hello, web3"); err != nil {
    41  		t.Fatalf("could not create post")
    42  	}
    43  	if err := m.NewPost("hello again, web3"); err != nil {
    44  		t.Fatalf("could not create post")
    45  	}
    46  	if err := m.NewPost("hi again,\n web4?"); err != nil {
    47  		t.Fatalf("could not create post")
    48  	}
    49  
    50  	println("--- MICROBLOG ---\n\n")
    51  	if rendering := Render(""); rendering != `# gno-based microblog
    52  
    53  # pages
    54  
    55  - [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)
    56  - [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)
    57  ` {
    58  		t.Fatalf("incorrect rendering /: '%s'", rendering)
    59  	}
    60  
    61  	if rendering := strings.TrimSpace(Render(author1.String())); rendering != `## [g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6](/r/demo/microblog:g1v96hg6r0wgc47h6lta047h6lta047h6lm33tq6)
    62  
    63  joined 2009-13-02, last updated 2009-13-02
    64  
    65  ## feed
    66  
    67  > goodbyte, web2
    68  >
    69  > *Fri, 13 Feb 2009 23:31:30 UTC*` {
    70  		t.Fatalf("incorrect rendering /: '%s'", rendering)
    71  	}
    72  
    73  	if rendering := strings.TrimSpace(Render(author2.String())); rendering != `## [g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00](/r/demo/microblog:g1v96hg6r0wge97h6lta047h6lta047h6lyz7c00)
    74  
    75  joined 2009-13-02, last updated 2009-13-02
    76  
    77  ## feed
    78  
    79  > hi again,
    80  >
    81  > web4?
    82  >
    83  > *Fri, 13 Feb 2009 23:31:30 UTC*
    84  
    85  > hello again, web3
    86  >
    87  > *Fri, 13 Feb 2009 23:31:30 UTC*
    88  
    89  > hello, web3
    90  >
    91  > *Fri, 13 Feb 2009 23:31:30 UTC*` {
    92  		t.Fatalf("incorrect rendering /: '%s'", rendering)
    93  	}
    94  }