Files
herolib/lib/web/site/site_test.v
2025-07-30 18:51:29 +02:00

92 lines
3.8 KiB
V

module site
import os
fn test_play_collections() ! {
mypath := '${os.dir(@FILE)}/example'
mut sc := new(mypath)!
// Add assertions here based on the expected site config structure
assert sc.name == 'depin'
assert sc.description == 'ThreeFold is laying the foundation for a geo aware Web 4, the next generation of the Internet.'
assert sc.tagline == 'Geo Aware Internet Platform'
assert sc.favicon == 'img/favicon.png'
assert sc.image == 'img/tf_graph.png'
assert sc.copyright == 'ThreeFold'
// Assertions for menu
assert sc.menu.title == 'ThreeFold DePIN Tech'
assert sc.menu.items.len == 3 // Based on the three !!site.menu_item entries
assert sc.menu.items[0].label == 'ThreeFold.io'
assert sc.menu.items[0].href == 'https://threefold.io'
assert sc.menu.items[0].position == 'right'
assert sc.menu.items[1].label == 'Mycelium Network'
assert sc.menu.items[1].href == 'https://mycelium.threefold.io/'
assert sc.menu.items[1].position == 'right'
assert sc.menu.items[2].label == 'AI Box'
assert sc.menu.items[2].href == 'https://aibox.threefold.io/'
assert sc.menu.items[2].position == 'right'
// Assertions for footer
assert sc.footer.style == 'dark'
assert sc.footer.links.len == 3 // Based on the three unique titles in !!site.footer_item
assert sc.footer.links[0].title == 'Docs'
assert sc.footer.links[0].items.len == 4
assert sc.footer.links[1].title == 'Features'
assert sc.footer.links[1].items.len == 4
assert sc.footer.links[2].title == 'Web'
assert sc.footer.links[2].items.len == 5
// Assertions for collections
assert sc.import_collections.len == 1 // Based on the !!site.collections entry
assert sc.import_collections[0].url == 'https://github.com/example/external-docs'
assert sc.import_collections[0].replace.len == 2
assert sc.import_collections[0].replace['PROJECT_NAME'] == 'My Project'
assert sc.import_collections[0].replace['VERSION'] == '1.0.0'
assert sc.import_collections[0].visible == false // Default value
// Assertions for pages
assert sc.pages.len == 4 // Based on the four !!site.page entries in site.heroscript
// Assertions for the first page (intro)
assert sc.pages[0].name == 'intro'
assert sc.pages[0].description == 'ThreeFold is laying the foundation for a geo aware Web 4, the next generation of the Internet.'
assert sc.pages[0].title == '' // No title specified in site.heroscript
assert sc.pages[0].draft == false // Default value
assert sc.pages[0].folder == '' // Default value
assert sc.pages[0].prio == 0 // Default value
assert sc.pages[0].src == '' // No src specified
assert sc.pages[0].content == '' // No content specified
// Assertions for the second page (mycelium)
assert sc.pages[1].name == 'mycelium'
assert sc.pages[1].description == '...'
assert sc.pages[1].title == 'Mycelium as Title'
assert sc.pages[1].draft == true
assert sc.pages[1].folder == '/specs/components'
assert sc.pages[1].prio == 4
assert sc.pages[1].src == '' // No src specified
assert sc.pages[1].content == 'the page content itself, only for small pages'
// Assertions for the third page (fungistor with .md)
assert sc.pages[2].name == 'fungistor'
assert sc.pages[2].description == '....'
assert sc.pages[2].title == 'fungistor as Title'
assert sc.pages[2].draft == false // Default value
assert sc.pages[2].folder == '/specs/components'
assert sc.pages[2].prio == 1
assert sc.pages[2].src == 'mycollection:mycelium.md'
assert sc.pages[2].content == '' // No content specified
// Assertions for the fourth page (fungistor without .md)
assert sc.pages[3].name == 'fungistor'
assert sc.pages[3].description == '...'
assert sc.pages[3].title == 'fungistor as Title'
assert sc.pages[3].draft == false // Default value
assert sc.pages[3].folder == '/specs/components'
assert sc.pages[3].prio == 1
assert sc.pages[3].src == 'mycollection:mycelium'
assert sc.pages[3].content == '' // No content specified
}