PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/p/samcrew/tablesort/v0

Package
Open in gnoweb ↗

Overview

Kind
Pure package
Name
v0
Namespace
samcrew / tablesort
Files
5 (README)(gnomod.toml)
Exported functions
n/a — not supported for pure packages by the node (vm/qfuncs)
Module
gno.land/p/samcrew/tablesort/v0
gno
0.9

Files (5)

  • README.mdmarkdown
  • gnomod.tomltoml
  • render.gnogno
  • tablesort.gnogno
  • tablesort_test.gnogno
tablesort_test.gnogno
1package tablesort23import (4	"net/url"5	"strings"6	"testing"7)89func TestRender(t *testing.T) {10	// --- Case 1: Testing Render with a Table with "Role" column sorted descending and param prefix "members-"11	table := &Table{12		Headings: []string{"Tier", "Member", "Role"},13		Rows: [][]string{14			{"T1", "g11111", "finance-officer"},15			{"T2", "g22222", "developer"},16			{"T3", "g33333", "developer"},17		},18	}1920	u, _ := url.Parse("/test?members-sort-desc=Tier")21	md := Render(u, table, "members-")2223	expected := "| [Tier ↓](/test?members-sort-asc=Tier) | [Member](/test?members-sort-desc=Member) | [Role](/test?members-sort-desc=Role) |\n" +24		"| --- | --- | --- |\n" +25		"| T3 | g33333 | developer |\n" +26		"| T2 | g22222 | developer |\n" +27		"| T1 | g11111 | finance-officer |\n"2829	// Trim spaces for comparison30	md = strings.TrimSpace(md)31	expected = strings.TrimSpace(expected)3233	if md != expected {34		t.Errorf("Render() output mismatch.\nExpected:\n%s\nGot:\n%s", expected, md)35	}3637	// --- Case 2: Testing Render with an invalid Table (row with missing cell)38	table = &Table{39		Headings: []string{"Tier", "Member", "Role"},40		Rows: [][]string{41			{"T1", "g11111"}, // Missing the "Role" cell42		},43	}4445	md = Render(u, table, "")46	expected = "tablesort fails: row 1 has 2 cells, expected 3, because there are 3 columns.\n"4748	if md != expected {49		t.Errorf("Expected error message:\n%s\nGot:\n%s", expected, md)50	}5152	// --- Case 3: Testing SortRows53	rows := [][]string{54		{"T1", "g11111", "finance-officer"},55		{"T2", "g22222", "developer"},56		{"T3", "g33333", "developer"},57	}5859	SortRows(rows, 2, false) // Sort by "Role" descending60	expected = "finance-officer"6162	if rows[0][2] != expected {63		t.Errorf("SortRows() failed. Expected first role: %s, got: %s", expected, rows[0][2])64	}65}66

Functions

not supported for pure packages by the node (vm/qfuncs)

Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.