LUCi Starter Testing Notes — V1.7.3.6

Table of Contents

  1. Navbar (Large Screens)
  2. Side Menu (Small Screens)
  3. User Menu
  4. Language Switcher
  5. Root Page (/)
  6. Home — Hero Carousel / Banner
  7. Home — Carousels
  8. Book Jackets & the Item Dialogue Box
  9. Item Page & Available Formats
  10. Reserving & Checking Out
  11. Search — Search Bar & Results
  12. Search — Filters
  13. Advanced Search
  14. Events — Featured Events Carousel
  15. Events — Navigation & Listings
  16. Event Details
  17. Digital Content
  18. Wildcard (Blog)
  19. Login
  20. Session Time-out & Logout
  21. Reset PIN & New PIN
  22. User Registration (Join the Library)
  23. Email Verification Code
  24. My Account — Tabs & Account Selector
  25. My Bookshelf — Loans, Reservations, History & Bookings
  26. Table View
  27. Loan & Reservation Details
  28. Renew All
  29. My Lists
  30. List Page & Bulk Editing
  31. Sharing Lists with QR Codes & Printing
  32. My Favourites
  33. My Profile
  34. Membership & Charges
  35. My Preferences
  36. Linked Accounts
  37. Footer Tray
  38. Contact Us
  39. Suggest / Request an Item
  40. Recommendations Pages
  41. Sharing on Social Media
  42. Cookie Consent
  43. General — Tabs Across the App
  44. General — Messages, Buttons & Error Pages
  45. Footer
  46. Kiosk Mode
  47. Colour Themes, Languages & Right-to-Left
  48. Screen Sizes (Responsiveness)
  49. Per-Library Customisations
  50. Appendix — Technical Checks (Optional)

The Header

(This info header needs to be at the beginning of each testing element inside your report)

Test DateEx: 25/10/2025
Tested AppEx: Sutton Council’s Cultural Services
Tester NameEx: John Doe
App URLEx: https://libraries.sutton.gov.uk
Testing DeviceEx: Desktop Intel(R) Core(TM) i7 — Laptop — Tablet — Mobile — Library kiosk — etc.
Testing ModuleEx: Patron Journey, Usability, Accessibility, App Responsiveness, App Security, etc.
Testing OS and VersionEx: Windows 11 Pro (24H2)
Page/ScreenEx: Navbar — Home — Digital Content — Search — Events — Wildcard — Contact Us — Join the Library — User Account — Lists — General — Footer — etc.
Browser Name and VersionEx: Chrome 130.x (Official Build) (64-bit)
PathEx: /bookshelf, /events, /search, /user/account, etc.

Area to Be Tested

Test IDElementSub-ElementPrerequisitesThe Test(s) Action RequiredExpected ResultActual ResultMore Details?Pass/Fail
A unique reference in the unified format TC-SS-NNN, where SS is the section number and NNN is the test serial number within that section (for example, TC-14-003).Name of the elementName of the sub-element (optional)Are any conditions required before performing the test?Test description, what to test and how to perform the test Action that’s requiredThe expected outcome of the testThe actual outcome of the testAre there any extra notes, suggestions, recommendations or observationsPass or Fail
Predesigned columns (already in this document) Add those to your final report to record the observations and results

General Notes

Words Used in This Document

WordMeaning
CMSThe library’s content management system, where the app settings, tabs and content are managed.
Dialogue boxA small window that opens on top of the page (for example, the login box). The page behind it is darkened and cannot be used until the box is closed.
Pop-up messageA short message that appears in a corner of the screen to confirm an action or report a problem, then disappears.
CarouselA row of items (book covers, event cards, slides) that can be scrolled left and right with arrow buttons.
Book jacketThe cover image of a title shown in carousels, search results and lists.
Drop-down listA box that opens a list of options to pick from.
SwitchAn on/off control that slides left and right.
Three-dots menuA button with three vertical dots (⋮) that opens a small menu of extra options.
Web addressThe address shown in the browser’s address bar (also called the URL).
Linked accountsOther library cards (for example, children’s cards) connected to the logged-in user so they can be managed together.
KioskA shared touch-screen computer inside the library.
eContentDigital titles such as eBooks and eAudiobooks provided by suppliers like BorrowBox or OverDrive.

1. Navbar (Large Screens)

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Main NavbarThe Brand (Logo on the left)Any screen with no dialogue box or side menu openFunctionality testClick the logo
  • If no “Header Link” is set in the CMS: the app goes to the Home screen (the Bookshelf by default)
  • If a “Header Link” is set in the CMS: the logo goes to that link (usually the library’s main website)
  • The logo changes to the “sticky” logo version when the page is scrolled down
Main NavbarBookshelf linkA tab branched from the Home Screen tab in the CMS of type Headers >> Bookshelf, Visibility set to AlwaysExistence and appearanceSet the tab icon only, or the icon and its colour, in the CMS. Refresh the page
  • No tab = no Bookshelf link on large and small screens
  • Changing the icon replaces the default icon on large and small screens
  • Changing the icon colour changes the icon in the normal and sticky navbar and in the side menu
Note: this is the main tab linked to the Home screen. Without it the app will not work properly.
Main NavbarDigital Content linkA tab of type Headers >> Digital-Content, Visibility set to AlwaysExistence and appearanceSet the tab icon / colour in the CMS. Refresh the page
  • No tab = no link
  • Icon and colour changes are shown
  • Clicking the link opens the first visible Digital Content sub-tab
Main NavbarEvents linkA tab of type Headers >> Events, Visibility set to AlwaysExistence and appearanceSet the tab icon / colour in the CMS. Refresh the page
  • No tab = no link
  • Icon and colour changes are shown
Main NavbarWildcard (Blog) linkA tab of type Headers >> Blog, Visibility set to AlwaysExistence and appearanceSet the tab icon / colour in the CMS. Refresh the page
  • No tab = no link
  • Icon and colour changes are shown
Main NavbarAccount (user menu button)A tab of type Headers >> Account, Visibility set to AlwaysExistence and appearanceSet the tab icon / colour in the CMS. Log in / out. Refresh the page
  • No tab = no user menu button on large screens
  • Logged out: the button shows the tab title (e.g. “Account”)
  • Logged in: the button shows the user’s first name and their avatar (picture or initials)
  • See section 3 for the menu itself
Main NavbarSearch iconA tab of type “Library Search”, Visibility set to AlwaysExistence and appearanceSet the tab icon / colour in the CMS. Refresh the page
  • No tab = no Search icon on large screens and no search field in the side menu
  • Icon and colour changes are shown
Main NavbarSearch field open / closeSearch icon is visible on a large screenOpen and close the search fieldClick the Search icon. Type text. Close it. Open it again. Press Enter with and without text
  • First click opens the search field; second click closes it
  • Closing the field clears any typed text
  • Enter with text goes to the Search page with that text as the search term
  • Enter with no text closes the field
  • If “Search box expanded by default” is set in the CMS, the field is already open when the page loads
Main NavbarSearch field — “Search field” drop-downThe library has search fields set up (e.g. Keyword, Title, Author)Choose what to search inOpen the search field, pick a search field from the drop-down, type a term, press EnterThe Search page opens and the results match the chosen field (e.g. only author matches)
Main NavbarSearch suggestionsSearch suggestions are switched on for the librarySuggestions while typingType the start of a title or author
  • A list of suggestions appears under the field
  • Choosing a suggestion runs a search for it
  • The list can be moved through with the arrow keys
Main NavbarAdvanced Search linkAdvanced Search is switched on for the library and the user is logged inLink visibilityOpen the search field while logged out, then while logged in
  • Logged out: no Advanced Search link
  • Logged in: an “Advanced Search” link appears; clicking it opens the Advanced Search dialogue box (see section 13)
Main NavbarAll linksAll the tabs above exist; log in to test the Account linkLinks go to the right pagesClick each link(1) Search → /search?term={your text}
(2) Bookshelf → /{bookshelf}
(3) Digital Content → /{digital-content}/{first sub-tab}
(4) Events → /{events}
(5) Blog → /{blog}
(6) Account → /user/account?tab=my-bookshelf
The current page’s link is highlighted and cannot be clicked again
Main NavbarSticky navbarAny page longer than the screenSticky navbar testScroll down a little, then scroll back to the top
  • Scrolling down: the navbar stays at the top with a background colour and shadow
  • Back at the top: the background disappears again

2. Side Menu (Small Screens)

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Side MenuMenu button (three lines)Small screen, or make the browser window narrowThe button responds to the screen sizeResize the browser window from wide to narrowThe menu button shows on small screens; the full navbar shows on large screens
Side MenuOpen / closeSmall screenOpen and close the side menuTap the menu button, then tap the X button
  • The side menu slides in and the menu button changes to an X
  • Tapping X closes the menu
  • The page behind cannot be scrolled while the menu is open
Side MenuSearch fieldA “Library Search” tab existsSearch from the side menuType a term and press Enter (or tap the search button)
  • The menu closes and the Search page opens with the results
  • While already on the Search page, the search field is replaced by a highlighted “Search” item
Side MenuMenu itemsAll tabs existItems and orderOpen the side menu while logged out, then while logged inItems in order: Search field, Home (only for libraries with this option), Bookshelf, Digital Content, Events, Blog, Account (logged in), Switch account (logged in with linked accounts), Contact Us, Join the library (logged out), Login / Logout. Each item closes the menu and opens the right page
Side MenuJoin the libraryLogged out; registration allowed in the CMS but the registration form has no fields set upError messageTap “Join the library”A pop-up message says: “Sorry, registration is not available yet, please try again later.”
Side MenuLogin / Logout—Login and logout from the menuTap Login while logged out; tap Logout while logged in
  • Login opens the login dialogue box (not shown if already on the login page)
  • Logout logs the user out

3. User Menu

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
User MenuOpen / closeLarge screenOpen and close the menuClick the user menu button. Click it again. Open it and press Escape. Open it and click elsewhere on the pageThe menu opens under the button with a small arrow, and closes with each of these actions
User MenuItems when logged outLogged outMenu itemsOpen the menu
  • Contact Us
  • Join (only if registration is allowed and the form has fields)
  • Login (opens the login dialogue box)
User MenuItems when logged inLogged inMenu itemsOpen the menu
  • Contact Us
  • Account (goes to My Account > My Bookshelf)
  • Switch account (only if the user has linked accounts) — opens a dialogue box to choose which account to view (see section 36)
  • Logout (a small loading sign shows while logging out)
User MenuContact Us linkAn external “Contact Link” is set in the CMSExternal contact linkClick Contact UsThe external link opens instead of the app’s Contact Us page

4. Language Switcher

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Info BarLanguage buttonThe library has more than one language set upExistenceLook at the thin bar above the navbar (top right)A button shows the current language name with a globe icon. If only one language is set up, no button shows
Info BarChange languageAs aboveSwitch languageClick the button and choose another language
  • The list shows each language with its flag; the current language is greyed out
  • All app text changes to the new language
  • The choice is remembered after closing and reopening the browser
  • Arabic switches the page to right-to-left (see section 47)

5. Root Page (/)

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Root PageRoot page switched off (default)“Root Page” is not enabled in App Settings in the CMSGoing to the main addressType the app’s main address with nothing after it (e.g. https://libraries.example.gov.uk/)The app goes straight to the Bookshelf page (e.g. /bookshelf)
Root PageRoot page switched on — with custom content“Root Page” is enabled; the Bookshelf tab has content in its “Prefix Content” box in the CMSCustom landing pageGo to the main address
  • The app stays on / and shows the custom content (text, images, links, layout)
  • No hero carousel, book carousels, loans or reservations appear on this page
  • Navbar and footer still work
Root PageRoot page switched on — no custom content“Root Page” is enabled; the Bookshelf tab’s Prefix Content is emptyDefault landing pageGo to the main addressThe page shows the heading “Home” and the text “Welcome to our library” (in the current language)
Root PageLogo & Bookshelf link“Root Page” is enabledNavigation from the root pageClick the Bookshelf link, then the logoThe Bookshelf link opens the Bookshelf page; the logo goes back to / (unless a Header Link is set)
Root PageNo Bookshelf tabNo Bookshelf tab in the CMSMissing home screenGo to the main addressThe “Lost in the library?” (page not found) page shows

6. Home — Hero Carousel / Banner

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
HomeHero CarouselA primary channel is selected in App Settings; at least one content item is scheduled in it with “App” selected in the Publish areaCarousel visibilityGo to the Home screen
  • The carousel shows at the top with one or more slides on mobile, tablet and desktop
  • It does not move on its own unless “Autoplay Carousel” is switched on in the CMS
  • No scheduled items = no carousel (only an empty space under the navbar)
HomeHero CarouselMore than one slideLeft / right arrowsClick the arrows
  • Arrows only show when there is more than one slide
  • Left arrow goes to the previous slide; right arrow to the next
HomeHero CarouselMore than one slidePlay / Pause buttonClick the button
  • Switches between play and pause
  • While playing, the slide changes every 8 seconds
  • The carousel pauses while the mouse is over the slide
HomeHero CarouselMore than one slideDots under the carouselClick a dot
  • Goes straight to that slide with a smooth movement
  • Dots are hidden on very small screens
HomeHero slide — contentA slide; fields edited in the Publish area of the content itemTitle, subtitle, text and pictureFill / clear: Published Title, Published Description, Info Bar Content, Thumbnail Image (200x200). Refresh
  • Title: large and bold at the top
  • Description: subtitle on the second line
  • Info Bar Content: a paragraph under them
  • Thumbnail: on the left, plus a blurred copy as the background
  • If left empty for a Bib Record or Event, these are filled automatically (title, author/location, description, cover/event image)
HomeHero slide — More Info buttonA slideButton existence, text and actionAdd / clear the “More Info URL” and “More Info Title”. Click the button
  • URL set = button shows; empty = no button
  • No title = button reads “More Info”; a title changes the button text
  • The link opens in a new browser tab
HomeHero slide — typesOne slide of each typeClicking the slide areaClick each slide
  • Bib item (Record ID or ISBN): opens the item dialogue box (section 8)
  • Calendar Event: opens the event details dialogue box
  • Live Web Page: opens the link in a new tab
  • Picture: opens the picture full size in a viewer
  • Video: opens a video dialogue box and the video plays
  • PDF: opens the PDF
HomeHero Banner (instead of carousel)A library set up with the “banner” style (e.g. Sunderland) — see section 49Banner displayGo to the Home screen and the Events page
  • A single flat banner shows instead of the carousel, on both pages
  • Clicking it follows its link in a new tab
Home & LibrariesDigital Content barA Digital Content tab with sub-tabs set to AlwaysBar existenceRefresh the Home and Digital Content pagesThe sub-tab titles show in a row that can be scrolled left / right

7. Home — Carousels

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
HomeOrder of rowsLogged in user with loans and reservationsRow orderRefresh the Home screenFrom top: “We Think You May Like”, the library’s carousels, “My Loans / Renewals”, “My Reservations”. Logged out: only the library’s carousels
Home“We Think You May Like”Logged inPersonal recommendationsRefresh the page
  • Shows suggested titles if the user has borrowing history
  • No suggestions = the row does not show at all
  • A loading placeholder shows while the row loads
  • When viewing a linked account, the title changes to “We Think {name} May Like”
  • The three-dots menu has “Full Screen” (opens the full recommendations page in a new tab) and “Print”
HomeLibrary carouselsThe library has carousels set upCarousel rowsRefresh the page; use the arrows
  • Each carousel with a title shows as its own row; carousels without a title do not show
  • Arrows scroll the row left / right
  • Each row has a Share button (section 41) and a three-dots menu with “Full Screen” (opens /recommendations/{name} in a new tab) and “Print”
Home“My Loans / Renewals”Logged inCurrent loans rowRefresh the page with and without loans
  • Loans show as book jackets with a coloured badge (e.g. “Due in 5 days”, “Due soon!”, “Today!”, “Overdue!”)
  • The number next to the title matches the number of loans
  • The reload button (two arrows) reloads the row
  • “Show as table” switch changes the row to a table (section 26)
  • “Renew All” button shows when there is at least one loan (section 28)
  • If the user has loan history, a “My Loan History” tile shows at the end and opens the history on the account page
  • No loans: “You don’t have any loans currently”
Home“My Reservations”Logged inCurrent reservations rowPlace and cancel reservations; refresh the page
  • Reservations show as book jackets with a badge (e.g. “Ready, can be collected”, “This item is suspended”)
  • The number next to the title matches
  • Reload button and “Show as table” switch work
  • No reservations: “You don’t have any reservations currently”

8. Book Jackets & the Item Dialogue Box

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Book JacketInformation boxAny carousel or search resultsHover / focus infoMove the mouse over a jacket, or move to it with the Tab keyA small box shows the Title, Author, Format and Publication Year
Book JacketMissing coverA title with no cover picturePlaceholderFind such a titleA placeholder cover with the title shows instead of a broken image
Book JacketOpen the itemAny jacketClick a jacketClick the jacket
  • The item dialogue box opens over the page
  • The web address changes to /manifestations/{id}
  • Loans and reservations open the loan / reservation details instead (section 27) and the address changes to /user/loans/{id} or /user/reservations/{id}
Item Dialogue BoxPrevious / nextOpened from a carousel with several itemsMove between itemsClick the left and right arrows in the dialogue boxThe previous / next item in the same row shows, and the web address updates
Item Dialogue BoxCloseDialogue box openClose itClick the X button; open again and press EscapeThe box closes, the previous web address returns, and the page can be used again
Item Dialogue BoxContentsDialogue box openWhat is shownLook at the boxCover, title, author, the rating / lists / share buttons, and the Available Formats area (section 9)
Item Dialogue BoxLike / Dislike (rating)“Allow Ratings” is on for the libraryRate a titleClick Like / Dislike while logged out, then while logged in. Click several times. Reopen the item
  • Logged out: buttons are disabled with a “Please log in…” tooltip
  • Logged in: each click adds +1 or -1, from -2 up to +2, and the number shows on the icon
  • The rating is remembered when the item is opened again (per account when viewing linked accounts)
Item Dialogue BoxLists panel (+ button)—Add to / remove from listsClick the + button logged out, then logged in
  • Logged out: the login dialogue box opens
  • Logged in: a “Lists” panel opens listing the user’s lists
  • Lists that already contain the title are marked (“This title is already on this list”) and offer “Remove”
  • Clicking another list adds the title; a pop-up message confirms
  • “New List” opens the “Create a new list” dialogue box and adds the title to the new list
  • The + changes to − while the panel is open; clicking it closes the panel
BadgesOn loan / reservation jacketsA user with loans due in different periods, overdue loans, ready and suspended reservationsStatus badgesLook at the jackets in My Loans / My ReservationsBadges such as “Due in X”, “Due soon!”, “Today!”, “Overdue!”, “Ready, can be collected”, “This item is suspended” with matching colours. eContent and printed items are named differently (“eContent item” / “Book item”)

9. Item Page & Available Formats

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Item PageFull pageA valid item IDOpen the item as a full pageOpen an item, then refresh the browser (or paste a /manifestations/{id} address in a new tab)The item shows as a full page with a blurred cover background, cover, title, author, rating / lists / share buttons and Available Formats
Item PageWrong ID—Page not foundGo to /manifestations/wrong-idThe “Lost in the library?” page shows
Available FormatsFormats carouselA title that exists in several formats (e.g. Book, eBook, eAudiobook)Choose a formatUse the arrows and click a format
  • Each format shows with its icon and “#1 of 3 Available formats”-style counter
  • Clicking a format shows its details and availability
Available FormatsFormat detailsA format is selectedDetails and linksRead the details. Click “Show More” / “Show Less”. Click an author or subject value
  • Details such as publisher, year, ISBN, series, language show
  • Long descriptions are shortened with “Show More” / “Show Less”
  • Clicking an author / subject value closes the dialogue box and runs a new search for that value
Available FormatsCopiesA printed format with copies in several librariesCopies listOpen the “Copies” section. Switch on “Only Available”. Type a library name in the filter box
  • The header shows e.g. “12 copies” or “3 / 12 copies available”
  • Each copy shows its location, status and placement
  • “Only Available” hides unavailable copies
  • The filter box narrows the list by location
Available FormatsYour loan / reservation notesLogged in user who has this title on loan, reserved, or borrowed beforePersonal notesOpen the titleNotes show: “Current Loan” with due date, “Current Reservation” with status (and queue position if the library shows it), or “Previously borrowed” with the last check-out date. For linked accounts the note names the person (e.g. “Anna’s Current Loan”)
Available Formats“Spot something wrong?”A catalogue email address is set for the libraryReport wrong informationClick “Let us know”The email program opens with the subject “Wrong catalogue info. Item: {title}”

10. Reserving & Checking Out

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Reserve“Place Reservation” buttonA printed format that can be reservedLogged outClick “Place Reservation” while logged outThe login dialogue box opens; after logging in the user can continue
ReserveReservation dialogue boxLogged inPlace a reservationClick “Place Reservation”, choose a pickup location, click “Reserve”
  • A “Place Reservation” box opens with a “Pickup location” drop-down
  • “Reserve” without a location shows “Please select a pickup location first.”
  • Success: pop-up “The title reservation has been placed successfully” and the reservation appears in My Reservations
  • The chosen location is pre-selected next time
  • Failure: a pop-up message explains why
Reserve“Reserve for”User with linked accountsReserve for someone elseChoose another account in “Reserve for” and reserveThe reservation appears under that person’s reservations
Reserve“Select a copy”A title with several volumes / copiesChoose a volumeOpen the reservation boxA “Select a copy” drop-down shows (with “Loading available copies…” first). Reserving without choosing shows “Please select a copy to reserve.”
ReserveFeesThe library charges for reservations; a fees link is setFee note and confirmationOpen the box; reserve a title that has a fee
  • A note says you may be charged, with a link to the library website
  • If a fee applies, a “Confirmation Required” box explains it; Ok places the reservation and updates My Charges; Cancel stops it
ReserveNot reservableA title that cannot be reservedDisabled buttonOpen the titleA greyed-out “Not Reservable!” button shows
eContentCheck outAn available eBook / eAudiobookCheck out an eTitleClick “Check out “{format}”” logged out, then logged in
  • Logged out: the login box opens
  • Logged in with linked accounts: a box asks who is borrowing (“Borrower”)
  • Success: pop-up “The title has checked out successfully”; the loan appears in My Loans; the reading link opens in a new tab (in kiosk mode a QR code shows instead)
eContentSupplier platform titlesA title that must be borrowed on the supplier’s own websiteExternal check outClick “Check out”The supplier’s page opens in a new tab
eContentPreview / DownloadA title with a sample or download linkExtra buttonsClick “Preview” / “Download”Each opens in a new tab
eContentReserve an eTitleAn eTitle with no copies availableReserve with emailClick “Place Reservation” (logged in)A box asks for an email address (pre-filled with the user’s email). Invalid email shows an error. Reserve places it; Cancel closes the box

11. Search — Search Bar & Results

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
SearchBasic search—Search a termSearch for e.g. “harry”
  • The page opens at /search?term=harry
  • A line shows “Results for ‘harry’: showing 40 of 230”
  • Results show as book jackets by default
SearchEmpty search—No search termGo to /search with no term, logged out then logged in
  • Logged out: the “Lost in the library?” page shows
  • Logged in: the whole catalogue can be browsed
Search BarSearch term boxOn the Search pageNew searchChange the term and press Enter or click “Search”A fresh search runs with the new term (an information tooltip explains this)
Search BarSearch field / Search area / Search targetThe library has these options set upNarrow the searchChange each drop-down and search again
  • Search field (e.g. KEYWORD, Title, Author) limits what is searched
  • Search area (default “All locations”) limits results to one library
  • Search target (default “All targets”) limits the collection searched
  • Choices are kept in the web address and after refresh
Search BarSort BySort options set upChange the orderChoose each sort optionResults re-order (Relevance, Title, Author, Publication year newest / oldest first)
Results“View as” switchResults showingThumbnail vs List viewClick the List View icon, then the Thumbnail View icon. Leave the page and come back
  • List view: each result is a card with details, available formats, a Share button, a + (lists) button and a three-dots menu
  • Thumbnail view: book jackets only
  • The chosen view is remembered
Results“Load More” tileThumbnail view with more results than shownLoad more resultsClick the “Load More” tile at the endThe tile spins, more results are added under the current ones, and the counter line updates. The tile disappears when everything is loaded
ResultsPagesList view with many resultsPage numbersClick page numbersThe next set of results shows; the line reads e.g. “showing 6 - 10 of 230”
ResultsList view — three-dots menuList viewMenu optionsOpen the three-dots menu on a card
  • “Full Screen” opens the item dialogue box
  • If ratings are on: a 5-star rating plus “Rate up” / “Rate down” (logged out opens the login box)
Results“Hide previously borrowed”Logged in user whose results include titles they borrowed before; Thumbnail viewHide past loansSwitch it on and off
  • The switch only appears when such titles are in the results; a tooltip explains it
  • On: previously borrowed titles are hidden
  • Jackets of previously borrowed titles show “You last checked this item out on {date}”
ResultsNo results—Nothing foundSearch for nonsense text
  • Message: “Sorry, we couldn’t find any results for {term} with the provided search criteria.”
  • If “Suggest a Purchase” is on: “Can’t find what you are looking for? Suggest a purchase” link to the request page (section 39)
ResultsLoading & errorsSlow or broken connectionFeedbackSearch on a slow connection“Loading search results…” shows. If search fails, a friendly error message shows instead of a broken page

12. Search — Filters

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Filters“Show filters” buttonResults showingOpen / close the panelClick “Show filters”, then “Hide filters” (or the panel’s close button)The panel opens at the side on large screens and full screen on small screens
FiltersFilter groupsPanel openGroups and countsOpen each group (e.g. Format, Author, Language)
  • Each group shows its total, e.g. “Format ( 2 / 8 )” when 2 are ticked
  • Groups with no values are greyed out
  • Each value shows its number of results
FiltersInside a groupA group with more than 6 valuesFind and sort valuesType in “Filter {group} list”. Click “Show All” / “Show Few”. Click the sort button
  • Typing narrows the list and highlights the match
  • Show All / Show Few switch between the full and short list
  • Sort switches between A–Z and Z–A
FiltersApplySome values tickedApply filtersClick “Apply filters”Results refresh with the filters; the web address keeps them, so refresh / sharing keeps the same results
Filters“Clear all”Filters tickedClear the panelClick “Clear all” in the panelAll filters that are not pinned are cleared (a tooltip explains Clear All and Apply Filters)
Current filtersFilter chipsFilters appliedRemove a filterClick the ✖ on a chip under “Current filters”That filter is removed
Current filtersPin a filterFilters appliedPinned filters stayClick the pin icon on a chip. Run a completely new search. Close and reopen the browser
  • The pin icon changes to “pinned”
  • The pinned filter is automatically applied to new searches and stays after reopening the browser
  • “Clear filters” does not remove pinned filters; click the pin again to unpin

13. Advanced Search

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Advanced SearchDialogue boxAdvanced Search on for the library; logged inOpen the boxClick “Advanced Search” in the navbar search or on the Search pageA box opens with “Enter your CQL search query here”, a large text box and a “CQL Tips” link (opens in a new tab)
Advanced SearchButtonsBox openSearch / Clear / ResetSearch with an empty box; type a query and click Clear; click Reset; then Search with a valid query
  • Search is disabled while the box is empty / invalid
  • Clear empties the box; Reset returns it to the start
  • Search shows the results for the query
Advanced SearchResults pageAn advanced search was runEdit / switch backClick “Edit Query”, then “Switch to Simple Search”
  • Edit Query reopens the box with the current query
  • Switch to Simple Search returns to the normal search bar
  • No results: “Sorry, we couldn’t find any results for the query…”

14. Events — Featured Events Carousel

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Featured EventsCarousel visibilityAn Events tab; at least one upcoming event marked as featured in the events systemCarousel showsGo to the Events page
  • A carousel of featured events shows at the top of all Events pages (all, category, location, date)
  • Up to 10 featured events show
  • Events that have already ended are not shown
  • No featured events = no carousel (only an empty space)
Featured EventsSlide contentAs aboveWhat each slide showsLook at each slideEvent picture (placeholder if none), blurred background, event name, date and time, location, category tags, and a short description (long text is shortened with “…”)
Featured EventsArrows / Play / DotsMore than one featured eventCarousel controlsUse the arrows, play / pause and dotsWork the same as the Home hero carousel (section 6). Controls are hidden when there is only one event. Autoplay follows the CMS setting
Featured EventsClick a slideAs aboveOpen event detailsClick the slide areaThe event details dialogue box opens and the web address changes to /{events}?id={event id}
Featured Events“Event Details” buttonThe event has a details page linkExternal event pageClick “Event Details”The event’s page on the events / booking website opens in a new tab
Featured EventsSingle event address—Carousel hidden for a single eventOpen /{events}?id={event id} directlyThe featured carousel is not shown; only the single event shows
Featured EventsBanner librariesA library with the “banner” styleBanner insteadGo to the Events pageThe library’s banner shows instead of the featured events carousel

15. Events — Navigation & Listings

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
EventsAll EventsUpcoming events existEvents homeGo to /{events}
  • An “All Upcoming Events” row shows event cards with a total count
  • No events: “Sorry, there are no events currently to show”
Events BarTop tabsCategory / location tabs set up in the CMSNavigation tabsClick each top tabTabs: “All Events”, “Events by Category”, “Events by Location”, “Events by Date”. The bar scrolls left / right on small screens
EventsBy CategoryCategories and sub-categories set upCategory filterChoose a category, then a sub-category
  • Only events in that category show, titled “Events in {category}”
  • None: “Sorry, there are no events in ‘{category}’ category currently to show”
  • Before choosing: an instruction to pick a category shows
EventsBy LocationEvent locations set upLocation filterChoose a location
  • Only events at that location show, titled “Events at {location}”
  • None: “Sorry, there are no events at {location} currently”
EventsBy Date — Today / This Week / This MonthEvents on those datesDate filtersClick eachRows titled “Today’s Events”, “This Week’s Events”, “{Month}’s Events” with only matching events
EventsBy Date — Calendar—Pick one dateClick “Calendar” and choose a date“Events on {date}” shows; the date is kept in the web address
EventsBy Date — Custom—Pick a date rangeClick “Custom” and choose start and end dates“Events between {start} and {end}” shows; the dates are kept in the web address
EventsWrong address—Page not foundGo to /{events}/something-wrong or a wrong event idThe “Lost in the library?” page, or “Sorry we couldn’t find that Event for you…”
Event CardCard contentEvents of different kindsCard detailsLook at cards
  • Picture, name, date / time, location
  • Icons for “Featured Event”, “Online Event”, “Payable Event”
  • “(Multiple sessions)” for multi-session events
  • “FULL” for fully booked events; “Expired Event” / “Cancelled Event” tags
Event CardCard buttons—View, favourite, ticketsClick the card / view button, the heart, and the tickets button
  • View opens the event details dialogue box
  • Heart: logged out shows “Please log in to add … to your favourites”; logged in adds / removes the favourite
  • Tickets button opens the booking page in a new tab (disabled “Fully Booked” when full)

16. Event Details

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Event DetailsInformationAn upcoming eventDetails shownOpen an eventName, picture, main category, Date, Time, Venue, Cost (or “Free”), Booking (required / not required), Ages, Sponsor, Requirements, Description (or “No description could be found for this event.”)
Event DetailsMultiple sessionsAn event with several sessions“View all dates”Click / hover “View all dates”A list of all sessions shows; fully booked sessions are marked
Event DetailsBooking buttonsEvents: bookable, fully booked, and one the user already bookedCorrect buttonOpen each event (logged in for the booked one)
  • Bookable: “Book Now” opens the booking page in a new tab
  • Fully booked: “Join Waiting List” opens the waiting list in a new tab
  • Already booked: “Edit My Booking” opens the event page in a new tab
Event DetailsAdd to CalendarAn upcoming eventCalendar optionsClick “Add to Calendar”Options for Google, Outlook, Apple / iCal etc. show; the chosen calendar has the correct name, date, time and place
Event DetailsShare & FavouriteAn upcoming eventButtonsClick Share and the heartShare works as in section 41; the heart works as on the card
Event DetailsExpired / cancelledAn event that has ended, and a cancelled onePast eventsOpen them
  • An “Expired Event” or “Cancelled Event” corner tag shows
  • For expired events the date and time are crossed out, and there is no booking button, Add to Calendar or Share
Event DetailsCloseOpened as a dialogue boxCloseClick X or press EscapeThe box closes and the previous page and web address return

17. Digital Content

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Digital ContentLandingDigital Content tab with sub-tabsOpening the sectionClick the Digital Content linkThe first visible sub-tab opens. If “Breadcrumb Navigation” is on in the CMS, a breadcrumb trail (Home > Section > Tab) shows and can be clicked
Digital ContentLevelsSub-tabs with their own sub-tabsNested tabsClick through tab levelsEach level shows its own row of tabs; the web address follows the path
Digital ContentText contentA tab with Prefix Content or Content TextHTML contentOpen the tabThe text, pictures, links and layout show correctly; accordions (expand / collapse sections) open and close
Digital ContentRestricted contentA tab whose visibility does not allow the current user (e.g. Staff Only)Content guardOpen the tab’s address as a patron / logged out“Restricted content! Sorry, this content is not available to you at the moment. Please contact the library for more information.”
Digital ContentLibrary / location page (Channel tab)A tab linked to a channel with address, opening hours, phone, email, website and mapLocation detailsOpen the tab
  • Address, Opening Hours (with “Closed” days), Telephone (tap-to-call), E-mail (opens email program), Website
  • A map of the location shows
Digital ContentWeb link tabA content tab of type Web URLRedirectOpen the tab and waitA note says “You will be redirected shortly to an external URL!”; after about 5 seconds the link opens. A link to open it manually is also shown
Digital ContentPicture / Video / PDF / Text tabsOne tab of each typeContent typesOpen each
  • Picture: shows and opens full size when clicked
  • Video: plays with controls
  • PDF: shows with a “Download file” button
  • Text lines: show as text

18. Wildcard (Blog)

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
BlogPosts listA Blog tab with postsList of postsGo to /{blog}Post cards show with picture, a tag (“{category} post” or “General”), title, “Last edited” date and “By” author, and a “Read More” button
BlogPagesMore posts than fit on one pagePage numbersClick page numbers; refreshOther posts show; the page number is kept in the web address. The number of cards per page changes with screen width
BlogSingle postA postRead a postClick a card / “Read More”The post opens with its banner picture, title, subtitle, last edited date, full content, and breadcrumbs (Home > Blog > Post)
BlogShare & FavouriteA postButtonsClick Share and the heart (logged out and in)Share as in section 41. Heart: logged out asks to log in; logged in adds / removes the post from My Favourites
BlogWrong post address—Page not foundGo to /{blog}/no-such-postThe “Lost in the library?” page shows

19. Login

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
LoginWhere to log inLogged outLogin page and login boxGo to /user/login; also click Login in the user menu on another pageThe login page shows the form; the menu Login opens the same form in a dialogue box over the current page
LoginAlready logged inLogged inNo access to the login pageType /user/login in the address barThe app goes to My Account > My Bookshelf instead
LoginForm fields—Field rulesType in, clear and leave each field
  • “Borrower number or username”: required, at least 4 characters
  • “PIN or password”: required, at least 3 characters
  • A clear error message shows under each wrong field
  • A note explains fields with * are required
LoginShow / hide PINPIN typedEye buttonClick the eye button twiceThe PIN switches between hidden dots and readable text
Login“Remember me on this device”Not a kioskLong loginTick the box; log in; close and reopen the browser the next day
  • Ticking shows a warning: “Use this option only on trusted devices…”
  • Without it the user stays logged in for 1 hour; with it for 7 days
  • The box is not shown in kiosk mode
LoginHuman checkCloudflare Turnstile or Google reCAPTCHA is set up for the libraryBot protectionLoad the form; try to log in
  • Turnstile: a small check box / widget shows; Login stays disabled until it is complete (“Please complete the Turnstile verification”)
  • reCAPTCHA: a note “This page is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.” shows, with links that open in new tabs
  • After each attempt the check resets
LoginLogin button—Button state and resultTry with an invalid form, wrong details, then correct details
  • Disabled while the form is invalid or busy (tooltip explains why)
  • Wrong details: “Couldn’t log in: unknown username or PIN”; the fields stay filled
  • Correct details: the user is logged in, their name / avatar shows in the navbar, and the app goes to My Account (or back to the page they wanted)
LoginClear / Cancel buttonsFields filledOther buttonsClick Clear; in the dialogue box click CancelClear empties the form; Cancel closes the dialogue box
LoginLinks—Forgot PIN / JoinClick “reset your pin or password” and “join the library”They open the Reset PIN page and the Registration page. “Join the library” only shows when registration is allowed
LoginReturn to wanted pageLogged outProtected pagesType /user/account in the address bar; log inThe login page opens first; after login the user is taken to My Account
LoginLogin during an actionLogged outLogin box keeps the pageClick “Place Reservation” or the + lists button on an item; log inThe login box opens over the item; after logging in the item is still open so the user can continue

20. Session Time-out & Logout

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
SessionNormal time-outLogged in without “Remember me”Automatic logoutLeave the app open for just over 1 hour
  • The user is logged out and a pop-up says “Your session has expired, please log in again.”
  • If they were on My Account they are taken to the login page
  • An open footer tray closes
SessionKiosk time-out warningKiosk mode (section 46); logged inWarning before logoutLog in and do not touch the screen
  • When 60 seconds are left, a “Session Expiring Soon” box shows with a live countdown
  • “Yes, Keep me logged in” resets the timer and closes the box
  • “No, Log me out” logs out straight away
  • If nothing is pressed, the user is logged out when the countdown reaches 0
  • Any tap, click or key press before the warning resets the timer
LogoutLogout buttonsLogged inLog outLog out from the user menu, the side menu, and the “Logout” button in My Profile
  • The user is logged out from each place
  • The navbar shows the logged-out state; the footer tray disappears
  • Typing /user/account afterwards goes to the login page

21. Reset PIN & New PIN

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Reset PINPageLogged outForm fieldsGo to /user/reset
  • “Your Borrower Number” field (letters, numbers, dots, dashes only; “Only numbers and letters are allowed” otherwise)
  • “Your Email Address” field only if the library requires the email for resets
  • The human check (Turnstile / reCAPTCHA) if set up
Reset PINSend Request / ClearFields filledSend the requestClick Clear; fill again and click “Send Request”
  • Clear empties the fields
  • Send Request shows: “The request was sent successfully! If there is a user associated with that Borrower Number, you will receive…” (the same message shows for unknown numbers, for privacy)
  • A reset email arrives for a real user
Reset PINFrom My ProfileLogged inReset PIN dialogue boxClick “Reset my PIN” in My Profile (or “Reset {name}’s PIN” for a linked account)
  • A dialogue box opens with the borrower number (and email) already filled and locked
  • No human check is needed
  • After sending, the Cancel button changes to “Ok”
New PINLink from the emailA reset emailNew PIN pageClick the link in the email. Also try /user/pin with no codeThe “New PIN” (or “New Password”) page opens. Without a valid code the “Lost in the library?” page shows
New PINField rulesOn the pageNew and confirm fieldsType different values; type matching values; use the show / hide button
  • PIN libraries: numbers only, with the library’s minimum / maximum length
  • Password libraries: must contain at least three of: uppercase, lowercase, number, special character
  • “Your two PINs do not match” until both match
  • Show / hide reveals both fields
  • Save is disabled until the form is valid; Clear empties both fields
New PINSaveValid formSave the new PINClick Save; use the same link again
  • “Success! you will be redirected shortly to login page.” and the login page opens; the new PIN works
  • Using the link again: “Couldn’t reset your PIN, maybe you’ve used an expired or already used link…”

22. User Registration (Join the Library)

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
RegistrationAccess to the pageA registered user who can log inAccess depends on loginLog in / out; go to /user/register
  • Logged out: the form shows, with “Already have an account? Please login here”
  • Logged in: the app goes to My Account instead; no Join links in the menus; the footer banner shows the library name only
  • Registration not allowed in the CMS: the “Lost in the library?” page shows
  • No form fields set up: “Sorry, no data found for the form! please try to refresh the page.”
RegistrationForm fields—Each field: correct content and required or notFill in and clear each field
  • Text fields accept normal characters; disallowed content shows “contains characters that are not allowed”
  • Number / phone fields accept numbers only
  • Email must look like an email address
  • Drop-downs start on “Please select”
  • Marketing tick-boxes read “I agree”
  • Required fields (*) show “Your {field} is required” after being touched and left empty
  • Minimum / maximum lengths show their own messages
RegistrationDate of birthA date of birth fieldDate rulesPick a future date; pick a date over 130 years ago“Your date of birth cannot be in the future!” / “Your age can’t be over 130 years!”
RegistrationPIN / Password + ConfirmA PIN or password fieldMatchingType different values, then the same; use show / hide“Your PIN and confirm PIN do not match!” until they match; show / hide reveals both
RegistrationAddress finderAn address field (UK postcodes)Find an address by postcodeType a postcode and click “Find my Address”; choose an address. Try a wrong postcode
  • “Searching for addresses…” then a list to “Please select your address”
  • Near-matches show “Did you mean any of these?”
  • Wrong postcode: “Postcode not found” / “No addresses found for this postcode”
  • Choosing fills the address
RegistrationEdit / manual addressAs aboveEdit or type the addressClick “Edit my address”; then “Enter my address manually”A form with Address Line 1–4, Town/City, Postcode, Country opens, with Save, Reset and Hide buttons. Saved values are used in the registration
RegistrationRegister buttonForm partly or fully filledButton follows the formHover / click the buttonDisabled until all required fields are valid (and the human check is done); the tooltip says “The form is invalid!…”
RegistrationClear buttonForm filledClear the formClick ClearAll fields, the address and any errors are cleared
RegistrationSubmitValid formStart registrationClick RegisterThe email verification box opens (section 23)

23. Email Verification Code

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Verify EmailDialogue boxA valid registration was submittedCode box and emailCheck the box and the email inbox
  • A “Verify Your Email Address” box shows the email address and the instructions (valid for 10 minutes, check spam, numbers only)
  • An email with a 6-digit code arrives
Verify EmailEntering the codeBox openSix digit boxesType letters; type digits; paste a code
  • Only numbers are accepted; the cursor moves to the next box automatically
  • The code is checked as soon as the 6th digit is entered
Verify EmailWrong / expired codeBox openErrorEnter a wrong code; wait 10 minutes and enter the right one“Invalid OTP” / “OTP expired” shows under the boxes
Verify EmailReset / Resend / CancelBox openButtonsClick Reset; wait for the timer and click Resend; click Cancel
  • Reset clears the digits (only available after a check)
  • Resend shows a countdown and is disabled until it ends; then a new code is emailed and the old one stops working
  • Cancel (or X) closes the box; the form keeps its values
Verify EmailCorrect codeBox openFinish registrationEnter the correct codeA success message shows, the new user is logged in automatically, and the app goes to My Account > My Bookshelf

24. My Account — Tabs & Account Selector

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
My AccountAccess—Logged out accessGo to /user/account while logged outThe login page opens; after login, My Account opens
My AccountTabsLogged inTabs and web addressClick each tab; refresh; use the browser Back button
  • Tabs: My Bookshelf, My Lists, My Favourites (only if Events or Blog is set up), My Profile, Linked Accounts
  • The web address shows ?tab=my-bookshelf / my-lists / my-favourites / my-profile / linked-accounts
  • Refreshing keeps the same tab
  • On mobile the tabs show icons
My AccountAccount selector (“Viewing”)User with linked accountsChoose whose items to seeOn My Bookshelf or My Profile choose “All Accounts”, “Me”, then a linked person
  • All Accounts: items of everyone, titles e.g. “All Accounts Loans”, and a “Borrower” column / label
  • Me: only the main user’s items
  • A person: only their items, titles e.g. “Anna’s Loans”, “Anna’s Profile”
  • Empty messages name the person, e.g. “Anna doesn’t have any loans currently”
  • Without linked accounts the selector does not show

25. My Bookshelf — Loans, Reservations, History & Bookings

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
My BookshelfRowsLogged inRows shownOpen My BookshelfRows: My Loans / Renewals, My Reservations, My Loan History, My Event Bookings (only if Events is set up)
My BookshelfEach rowItems in each rowRow controlsUse the reload button and the “Show as table” switch on each row; reload the page
  • The number in brackets matches the items
  • Reload refreshes that row only (it spins while loading)
  • “Show as table” switches that row to a table (section 26); the choice is remembered for each row
My BookshelfMy Loan HistoryUser with past loans (and loan history switched on)History rowLook at the rowPast loans show with “Your last check out date”. None: “You don’t have any previous loans”
My BookshelfMy Event BookingsUser with current and past event bookingsBookings rowLook at the row; switch “Show all bookings” on and off
  • Off (default): only upcoming bookings
  • On: past bookings are included
  • Each ticket shows the event name, date, cost (or Free) and status tags: Cancelled, Refunded, Checked-In, Expired Event, Cancelled Event
  • None: “You don’t have any active bookings.”
Loans page/user/loans and /user/reservationsLogged inFull-page listsGo to /user/loans and /user/reservations (also logged out)
  • All loans / reservations show as a grid with page numbers
  • Logged out: the login page opens first

26. Table View

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
TableColumns“Show as table” switched onColumns per row typeTurn on the table for loans, reservations, history and a list
  • Loans: cover, Title, Author, (Borrower), Times Renewed, Date Due (“12 days”, “Only 2 days left”, “Today!”, “Overdue”), Actions
  • Reservations: cover, Title, Author, (Borrower), Status (“Pending” / “Pickup by {date}”), Pickup at, Expires, Place in queue (if the library shows it), Actions
  • Loan History: cover, Title, Author, (Borrower), Returned, Actions
  • Lists: cover, Title, Author, Actions
TableFilter boxTable onFilter by titleType part of a title in “Filter the {name} list by title”Only matching rows show and the matching text is highlighted
TableSorting & pagesMore than 5 rowsSort and pageClick column headers; use the page arrows and “Rows per page” (5 / 10 / 25)Rows sort ascending / descending; page buttons (first, previous, next, last) and rows per page work
TableTitle & authorTable onClicking textClick a title; click an authorThe title opens the item / loan / reservation dialogue box; the author runs a search for that author
TableLoan actionsLoans tableReturn / Renew / ReadClick each action where shown
  • Return (only for returnable loans): asks “Are you sure you want to return this loan?”; Proceed returns it
  • Renew: asks to confirm; success / failure pop-up; a fee may need confirming
  • Read (eContent): opens the reader in a new tab; in kiosk mode shows a QR code to scan
TableReservation actionsReservations tableChange / Suspend / Resume / CancelClick each action where shownChange and Suspend open the reservation details at that tab (section 27); Resume and Cancel ask to confirm, then show a pop-up result
TableHistory actionLoan History tableReborrowClick “Reborrow”The “Place Reservation” box opens for that title
TableList actionsA list shown as a tableRemove / MoveClick Remove; click Move and choose a list
  • Remove deletes the title from the list with a pop-up confirmation
  • Move opens “Move Item to Another List” with “Select destination list” (or “No other lists available”)

27. Loan & Reservation Details

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Loan DetailsOpeningA loanDetails boxClick a loan jacket; also open /user/loans/{id} directlyA box (or full page) with tabs: Details, Return (only if allowed), Renew, Read (only for eContent). A wrong id shows the “Lost in the library?” page
Loan DetailsDetails tabAs aboveInformationRead the Details tab; click “View item”Title, Author, Format, (Borrower), Due in, Due date, Renewal cost, Renewal count, Renewals Remaining. “View item” opens the item details
Loan DetailsReturn tabA returnable loanReturnClick Proceed; open again and click KeepProceed: “Your loan has been returned successfully!” and it leaves My Loans. Keep: nothing changes
Loan DetailsRenew tabA renewable loan and a non-renewable loanRenewOpen the tab for each
  • Renewable: Proceed renews (“Your loan has been renewed successfully”) and the due date updates; Cancel shows “Loan renewal cancelled”
  • Not renewable: “This loan cannot be renewed.” with the Reason (or “No specific reason provided.”)
Loan DetailsRead tabAn eContent loanOpen the titleClick ReadThe reader opens in a new tab; in kiosk mode a QR code shows instead
Reservation DetailsDetails tabA reservationInformationClick a reservation jacketTitle, Author, Format, (Borrower), Pickup Location, Reservation Expiry, Pickup Expiry, Status (Pending / Ready), Suspend From / To, Position in the queue (if shown). Ready items show “The item is ready to be collected from {library}”
Reservation DetailsChange tabA reservation that can be changedChange pickup locationChoose a new location and click ProceedProceed is disabled until a different location is chosen; then “Your reservation pickup location has been changed successfully”
Reservation DetailsSuspend tabA reservation that can be suspendedSuspendChoose the dates (or end date) and click Proceed
  • Depending on the library: a start / end date range, an end date only, or no dates
  • Past dates cannot be chosen; Proceed is disabled until dates are chosen
  • Success: “Your reservation has been suspended successfully”; the jacket shows “This item is suspended”
  • Not possible: “Unable to suspend this reservation!”
Reservation DetailsResume tabA suspended reservationResumeClick ProceedShows Suspend Start / End, then “Your reservation has been resumed successfully”
Reservation DetailsCancel tabA cancellable reservationCancelClick Proceed; open again and click KeepProceed: “Your reservation has been cancelled successfully!”; Keep: nothing changes

28. Renew All

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Renew AllDialogue boxUser with renewable and non-renewable loansBox contentClick “Renew All”
  • “Loans available for renewal” with a tick-box per loan, due date, “Overdue?”, renewal count and remaining renewals
  • “Loans not available for renewal” with the reason for each
  • No renewable loans: “Sorry, you have no loans that can be renewed at the moment!”
Renew AllSelect allBox openTick-boxesClick “Select all”; untick one loanAll are ticked / unticked; with some ticked the Select all box shows a partly-ticked state
Renew AllRenew SelectedAt least one loan tickedRenewClick “Renew Selected”
  • Each loan shows its “Renewal Result” (green for success, red for failure)
  • All good: pop-up “All selected loans have been renewed successfully.”; otherwise “Some or all of your loan renewals were unsuccessful…”
  • Loans needing a fee show “Agree & Renew” to confirm and renew that loan
  • Cancel changes to “Done”, which closes the box; My Loans updates

29. My Lists

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
My ListsTabLogged inLists shownOpen the My Lists tab with and without lists
  • “Loading your lists…” then one row per list with its name, item count and a lock icon (Private) or open lock (Public)
  • No lists: “You don’t have any lists!”
  • An empty list shows “No items found in this list”
My Lists“Create new list”Logged inCreate a listClick “Create new list”; try an empty name, 2 characters, special characters, then a valid name; choose Public / Private; click Create
  • Errors: “You must enter a name”, “You must enter at least 3 characters”, “No special characters are allowed in the name”
  • Success: “List {name} has been created successfully” and the list appears
  • Clear empties the box; Cancel closes it (it reads “Ok” after creating)
My Lists“Show as table”A list with itemsTable view per listSwitch on for one list; reload the pageThat list shows as a table (section 26); the choice is remembered per list
My ListsShare buttonA public and a private listShare only public listsLook at both rowsThe Share button only shows on public lists (section 41)
My ListsThree-dots menuA list with itemsMenu optionsOpen the three-dots menu on a list row
  • “Full Screen” opens the list page in a new tab
  • “Print” prints the list (section 31) — disabled when the list is empty
  • “Reload” reloads the list (the icon spins)
  • “Edit items” opens the list page in bulk-edit mode in a new tab (section 30) — disabled when empty
  • “Edit list” opens the Edit List box
  • “Delete” asks “Are you sure? This will delete ‘{name}’ and all its contents permanently.”
My ListsEdit listA listRename and privacyOpen “Edit list”, change the name and / or Public / Private, click Save“List {name} has been edited successfully”; the name and lock icon update. Clear resets the box
My ListsDelete listA listDeleteChoose Delete; click Cancel; repeat and click DeleteCancel keeps the list; Delete removes it with “Your list {name} deleted successfully.”

30. List Page & Bulk Editing

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
List PageOwner viewLogged in owner of the listFull list pageOpen /lists/{id} (e.g. via “Full Screen”)List name, item count, Public / Private label, all items as jackets, Share (public lists only) and a three-dots menu with Print, Edit items, Edit list, Delete
List PageVisitor viewA public list; open it logged out or as another userRead-only listOpen the shared list linkItems show; no Public / Private label and the three-dots menu only has Print. No editing is possible
List PagePrivate listA private list; open it logged out or as another userNo accessOpen the list linkThe “Lost in the library?” page shows
List PageEmpty listA list with no itemsEmpty messageOpen it“There are no items in this list yet!”; Print and Edit items are disabled
Bulk EditStart editingOwner; list with itemsEnter edit modeChoose “Edit items” in the three-dots menu (or open /lists/{id}?edit=true)
  • A tick-box shows under each item; the web address gets ?edit=true
  • Controls appear: “Select all”, “Move selected” drop-down, “Delete selected”, “Finish editing”
  • Clicking a jacket does not open the item while editing
  • “Edit items”, “Edit list” and “Delete” are disabled in the menu while editing
Bulk EditSelectingEdit modeTick-boxesTick some items; click Select all; click it again
  • Select all ticks every item; clicking again unticks all
  • With only some ticked, Select all shows a partly-ticked state
  • “Move selected” and “Delete selected” stay disabled until at least one item is ticked
Bulk EditMove selectedEdit mode; items ticked; user has other listsMove items to another listChoose a list in “Move selected”; click Cancel; repeat and click Ok
  • A box asks: “Are you sure you want to move the {N} selected items from ‘{A}’ list to ‘{B}’ list?”
  • Cancel: nothing moves and the selection is cleared
  • Ok: items move; pop-up “Successfully moved {N} items to another list”; both lists update
  • “Move selected” only shows if the user has another list
Bulk EditMove — duplicatesSome ticked items already exist in the target listDuplicate handlingMove themWarnings: “Moved X item(s). Y item(s) already exist in target list and were not moved.” or “All X item(s) already exist in the target list. No items were moved.”
Bulk EditMove to a new listEdit mode; items tickedCreate a list while movingChoose “Create new list” at the bottom of “Move selected”; enter a name; CreateThe new list is created and the ticked items are moved into it
Bulk EditDelete selectedEdit mode; items tickedRemove itemsClick “Delete selected”; Cancel; repeat and Ok
  • Asks: “Are you sure you want to delete the {N} selected item(s) from ‘{list}’ list?”
  • Ok removes them with “Successfully deleted {N} items from the list”
  • A loading sign shows while it works
Bulk EditFinish editingEdit modeLeave edit modeClick “Finish editing”Tick-boxes and edit controls disappear, ?edit=true is removed from the address, and jackets can be clicked again
Bulk EditPartial failurePoor connectionError messagesMove / delete while the connection dropsA message such as “Some operations completed successfully, but others failed” or “Failed to move items between lists”

31. Sharing Lists with QR Codes & Printing

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
QR Codes“Share with QR Codes” buttonMy Lists tabButton stateLook at the button with and without public listsDisabled when the user has no public lists
QR Codes“Share My Public Lists” boxAt least one public listChoose listsClick the button; untick / tick lists; use Select All / Deselect All
  • All public lists are ticked at first, each with its item count
  • “{X} of {Y} lists selected” updates
  • Select All shows a partly-ticked state when only some are ticked
QR CodesPrintBox openPrint the QR pageLeave “Document Title” empty; then type a title and click Print
  • Print is disabled until a title is typed and at least one list is ticked
  • The print window opens with an A4 page: library logo, the title, and a QR code with the name of each chosen list
  • Scanning a QR code with a phone opens that list
  • Works on desktop and mobile browsers; Cancel closes the box
PrintPrint a list or recommendationsA list or a recommendation carousel with itemsPrintable documentChoose “Print” in the three-dots menu“Preparing document” / “Loading images” shows, then the print window opens with the library logo, the list name and each item’s cover, title, author, publication year and ISBN

32. My Favourites

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
My FavouritesTabEvents and / or Blog set upTab visibilityOpen My Account with and without Events / BlogThe tab only shows when Events or Blog is set up
My FavouritesRowsFavourite events and posts savedFavourites shownOpen the tab
  • “My Favourite {Events}” row (if Events is set up)
  • “My Favourite ‘{Blog}’ Posts” row (if Blog is set up)
  • Empty rows: “You don’t have any favourite …”
My FavouritesAdd / removeLogged inHeart buttonClick a heart on an event / post; check the tab; click the heart againThe heart fills and the item appears in My Favourites; clicking again removes it

33. My Profile

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
My ProfileDetailsLogged inProfile informationOpen the My Profile tabThe user’s details from the library system show (e.g. name, date of birth, member since, email, phone, borrower number, home library). Read-only details have no pencil icon
My ProfileEdit a detailA detail with a pencil iconEdit dialogue boxClick the pencil; change the value; Save. Try Reset and Cancel
  • An “Edit {field}” box opens with the current value
  • Save updates the profile; Reset restores the value; Cancel closes the box
  • For dates, choosing the same date shows “Please select a different date.”
My ProfileAvatarLogged inChoose an avatarClick “Update my avatar”; pick one; Save. Try Clear, Undo and Cancel
  • The “User Avatar Selector” box shows the current avatar and a gallery
  • Save updates the avatar in the profile, the navbar and the Linked Accounts card
  • Clear removes the avatar (initials show instead); Undo goes back to the saved one; Cancel closes
My ProfileReset PIN / Logout buttonsLogged inButtonsClick “Reset my PIN”; click “Logout”Reset PIN opens the reset box (section 21); Logout logs the user out
My ProfileLinked account selectedUser with linked accounts; one selected in “Viewing”Profile of another personChoose a linked personTitles and buttons use their name (“Anna’s Profile”, “Update Anna’s avatar”, “Reset Anna’s PIN”), and their details show

34. Membership & Charges

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
My MembershipCurrent / Next membershipA library and user with paid membershipsMembership detailsOpen My Profile
  • “Current Membership” and “Next Membership” with Category, Service Period, Payment Type, Amount (incl. VAT) and Payment Date (if paid)
  • If the next category is different: “Your membership category will be updated at the end of the current period.”
  • Users without memberships: the section has no details
My MembershipPay buttonsAn unpaid membership with a payment linkPayClick “Pay membership” / “Pay next membership”; complete or cancel the paymentThe payment page opens; afterwards the user returns to My Profile. The button disappears once paid
My ChargesNo chargesUser with no chargesEmpty stateOpen My Profile“No charges”
My ChargesCharges listUser with chargesCharges shownOpen My Profile“Current Fines/Blocks: {number}”, “Total Due”, and a list with Title/Explanation and Amount
My Charges“Pay Now” linkA general payment link is set for the library (no per-charge payment)External paymentClick “Pay Now”The library’s payment page opens in a new tab
My ChargesSelect charges to payPer-charge payment is availableChoose and payTick charges; use Select all; click “Pay charges”
  • A “Pay” column with tick-boxes shows only for payable charges
  • “Total to be paid” updates as charges are ticked
  • “Pay charges” is greyed out until something payable is ticked, then opens the payment page

35. My Preferences

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
PreferencesBoxes shownLogged in, viewing “Me” or “All Accounts”Which boxes appearOpen My Profile > My PreferencesColour Theme, Genres, Formats, Pop-up Messages, plus Notifications and Marketing (if the library uses marketing options) and Loan History (if the library supports it)
PreferencesEdit / Save / CancelAs aboveEditing a boxClick Edit on one box; try to edit another; click Cancel; edit again and Save
  • Only one box can be edited at a time
  • Cancel restores the saved choice
  • Save stores it and shows a success pop-up; the choice stays after logging out and in
PreferencesColour ThemeThe library has more than one themeChange themeChoose “Auto (Library default)” and each theme; SaveThe app colours change straight away and are kept after refresh. “Please select one!” if nothing is chosen
PreferencesGenres—Favourite genresTick one genre and Save; then tick two or more and SaveOne genre: “Please select at least two of your favourite genres or categories.” Two or more: “Genres has been saved successfully!”
PreferencesFormats—Preferred formatsUntick all and Save; then tick Read / Listen / Watch / Attend and SaveNone: “Please select ONE at least!”; otherwise “Formats has been saved successfully!”
PreferencesPop-up Messages—How long pop-ups stayChoose “I will close the messages manually”, then “…disappear automatically after” and move the slider; click “Try Now”; Save
  • “Try Now” shows a sample pop-up: “This pop-up message will last for {X} seconds” or “…will last for ever unless you click on it.”
  • After saving, all app pop-ups follow the chosen setting
PreferencesNotificationsLibrary uses marketing optionsHow the library contacts the userChoose an option and SaveThe choice is saved in the library system; “Notifications preference has been saved successfully!”
PreferencesMarketingLibrary uses marketing optionsMarketing consentChoose Yes / No and Save“Marketing consent has been saved successfully!”; without an answer: “Please select an answer.”
PreferencesLoan HistoryLibrary supports loan historyKeep borrowing historyChoose Yes / No and Save
  • A note explains the library will save the borrowing history for personal use
  • Yes: the Loan History row fills over time; No: history is not kept
PreferencesLinked person selectedA linked person chosen in “Viewing”Their preferencesOpen My ProfileA “{name}’s Preferences” section shows only Notifications, Marketing and Loan History for that person. Colour Theme, Genres, Formats and Pop-up Messages are hidden (they belong to the main user)

36. Linked Accounts

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Linked AccountsTab contentLinked accounts are enabled for the userCardsOpen the Linked Accounts tab
  • “Primary Account” card (the login account) with avatar, borrower number, name and email
  • “Linked Accounts” cards for each linked person, or “You don’t have any linked accounts.”
  • A “Link Account” button
  • If linked accounts are not enabled, the tab content is empty
Linked AccountsLink an accountThe borrower number and PIN of another cardLink Account boxClick “Link Account”; try your own number, an already linked one, wrong PIN, then a correct one
  • The box asks for the borrower number and PIN (show / hide PIN, Clear, Cancel)
  • Own / already linked: “This account is already linked or is your own account.”
  • Wrong details: “Failed to link account”
  • Correct: the new card appears, and the “Viewing” selector and “Switch account” menu item appear
Linked AccountsSelect / DeselectAt least one linked accountChoose whose items to viewClick “Select” on a card, then “Deselect”The selected card gets a coloured border and the app shows that person’s items everywhere; Deselect goes back to “All Accounts”. The primary card’s Select is disabled when there are no linked accounts
Linked AccountsUnlinkA linked accountRemove a linkClick “Unlink”The card disappears and that person’s items are removed from the bookshelf
Linked AccountsSwitch accountLinked accounts existFrom the menusChoose “Switch account” in the user menu / side menu; pick a person; click OkA box with the “Viewing” selector opens; the choice applies across the app

37. Footer Tray

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Footer TrayVisibility—Where it showsLook at the bottom of the screen logged out, logged in, and on My Account
  • Logged out: no tray
  • Logged in: a bar fixed at the bottom of every page except My Account
  • Hidden while the side menu or the full-screen filters panel is open
Footer TrayOpen / closeLogged inToggleClick the arrow button; click it again; open it and click the dark area above it
  • The tray slides up showing My Bookshelf first; the web address gets ?drawer=open&tab=my-bookshelf
  • The page behind cannot be scrolled while open
  • The arrow or the dark area closes it and removes those parts of the address
Footer TrayTabsTray shownTab buttonsClick each tab; click the active tab again
  • Tabs: My Bookshelf, My Lists, My Favourites (if Events / Blog), My Profile, Linked Accounts — icons only on mobile
  • Each tab shows the same content as on My Account
  • Clicking the active tab closes the tray
Footer TrayDirect linkLogged inOpen from addressAdd ?drawer=open&tab=my-lists to any page addressThe page opens with the tray already open on My Lists

38. Contact Us

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Contact UsPageNo external Contact Link; Contact Us not hidden for the libraryPage contentGo to /contact-us logged out and logged inHeading “Contact {library}”, the line “Hello, {first name} how can we help?” (name only when logged in), “For all enquiries, please email us using the form below”, and the form
Contact UsExternal link / hiddenA Contact Link set in the CMS; or a library with Contact Us hiddenPage not usedGo to /contact-usExternal link set: the browser goes to that link. Contact Us hidden: the “Lost in the library?” page
Contact UsForm fields—Each field: correct content and required or notFill in and clear each field
  • Text fields (e.g. Name, Library Number, Subject) accept normal characters
  • Email accepts email format only
  • Drop-downs (e.g. Library) start on “Please select”
  • Message is a large text box
  • Required fields (*) show errors when touched and left empty
Contact UsFilled automaticallyLogged inUser detailsLog in / out; refresh the page
  • Logged in: Name, Email and Library Number are filled and locked; the Library drop-down is pre-selected and locked if the home library is in the list
  • Logged out: those fields are empty and editable
Contact UsSend buttonForm partly or fully filledButton stateHover / click the buttonDisabled until all required fields are valid, something was changed, and the human check is complete (if set up for logged-out users)
Contact UsClear buttonForm filledClear the formClick Clear logged out, then logged inLogged out: all fields clear. Logged in: only Subject and Message clear (the user’s details stay)
Contact UsSendingAn admin email address set in App SettingsSend a messageClick Send
  • Success pop-up: “Thank you! Your message has been sent successfully. Someone will be in touch with you shortly.”; the form clears
  • Failure pop-up: “Sorry, there was a problem sending your message…”
  • The message arrives in the admin’s inbox
Contact UsNo form set upNo contact form fields set upEmpty stateGo to /contact-us“No data found for the form!”

39. Suggest / Request an Item

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Request ItemAccess“Suggest Purchase Form” on / off in the CMSPage availabilityGo to /request-item; also use the “Suggest a purchase” link on a search with no resultsOn: the “Suggest/Request An Item” page shows. Off: the “Lost in the library?” page and no link on the search page
Request ItemForm fieldsPage openYour details + item detailsFill in and clear each field
  • The user’s details (e.g. Name, E-Mail, Library card number) follow the library’s setup
  • “Item Details”: Title, Author/Artist, Media Type (Book, Audiobook, CD, Blu-ray Disc), Year Published/Edition, More Information
  • Required fields show errors when left empty
Request ItemSend / ClearForm filledSend a requestClick Clear; fill again and click SendClear empties the form. Send (after the human check, if set up) shows a success or failure pop-up, and the request arrives by email

40. Recommendations Pages

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
RecommendationsLibrary carousel pageA library carouselFull pageChoose “Full Screen” in a carousel’s three-dots menu/recommendations/{name}?page=1 opens in a new tab with the carousel’s title, all items as jackets, page numbers, Share and Print
RecommendationsPagesMany itemsPage numbersClick page numbers; refreshOther items show; the page number stays in the address. Shared links include the current page
RecommendationsPersonal pageLogged in with recommendations/recommendations/userOpen it logged in, then logged outLogged in: “We Think You May Like” with all items. Logged out: the login page / “Lost in the library?”
RecommendationsWrong name—Page not foundGo to /recommendations/no-such-carouselThe “Lost in the library?” page shows

41. Sharing on Social Media

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
ShareShare menuAn item, event, blog post, public list or recommendation carouselOpen / closeClick the Share button; click it againA small menu opens with: Copy link, Email, Facebook, X (Twitter), WhatsApp; clicking again closes it
ShareCopy linkMenu openCopyClick Copy link; paste it in a new tabPop-up: “A shareable link to the item has been copied successfully to the clipboard”. The link opens the same item / event / post / list / recommendations page
ShareEmail / Facebook / X / WhatsAppMenu openShare optionsClick each optionEach opens the email program or the social site in a new window with a ready-made message, e.g. “Check this title ‘{title}’ from {library}”
ShareLink previewShared link pasted into a social site or messaging appPreviewPaste a shared linkThe preview shows the correct title, description and picture
ShareKioskKiosk modeHiddenLook for Share buttonsNo Share buttons show anywhere

42. Cookie Consent

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
CookiesFirst visit — with analyticsCookie consent on; the library uses analytics (tracking consent wanted); use a private / incognito windowCookie panelOpen the app
  • A panel “Our use of cookies” covers the page with sections for Essential cookies and Analytics cookies
  • If Turnstile / reCAPTCHA is used, a paragraph explains the human verification cookie
  • Buttons: “I only accept essential cookies” and “I accept all cookies”
  • The page behind cannot be used until a choice is made
CookiesAccept allPanel showingAcceptClick “I accept all cookies”The page reloads, the panel does not show again, and analytics is active
CookiesEssential onlyPanel showingDecline analyticsClick “I only accept essential cookies”The page reloads, any analytics cookies are removed, and the panel does not show again
CookiesFirst visit — no analyticsCookie consent on; no analytics usedSimple panelOpen the app in a private windowA shorter panel with one button “I accept the website cookies”, which closes it
Cookies“C” iconAfter a choiceChange preferencesClick the “C” icon in the lower-left cornerThe panel opens again and a new choice can be made. The icon moves up when the footer tray is shown and is hidden when the side menu or tray is open
CookiesCookie consent offCookie consent off in the CMSNo panelOpen the app in a private windowNo panel and no “C” icon

43. General — Tabs Across the App

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Tabs across the whole appVisibility
  • A Patron user and a Staff user who can log in
  • At least one tab branched from the Home-Screen tab
Tab visibility testsChange the tab’s Visibility in the CMS. Log in / out. Refresh the page
  • “Always”: the tab always shows
  • “Pre-Login”: only before login (any user)
  • “Post-Login”: only after login (any user)
  • “Staff Only”: only after a Staff user logs in
  • “Never”: never shows
  • Typing the address of a hidden tab shows “Lost in the library?” or the “Restricted content!” message
This applies to navbar tabs, Digital Content tabs, events tabs and blog tabs.
Tabs across the whole appName and URL FragmentAt least one tabRenameChange the tab title or its URL Fragment in the CMS and refresh
  • Changing the title changes the tab name
  • Changing the URL Fragment changes the tab’s part of the web address
Notes:
1- Changing the title in the CMS changes the URL Fragment automatically while typing; please double-check both before saving.
2- The Account tab address is fixed (/user/account); only its title can be changed.
Tabs across the whole appIconsA tab with a custom icon and colourIconsSet an icon and colour for event / Digital Content tabsThe custom icon and colour show in the tab bars; tabs without an icon show a default picture

44. General — Messages, Buttons & Error Pages

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
Back to Top button—Any long pageButton shows and worksScroll down; click the button
  • After scrolling down about one screen-height (1000 pixels), a small arrow button with “Top” appears in the lower-right corner
  • Scrolling back near the top hides it
  • Clicking it scrolls smoothly to the top
  • It sits higher when the footer tray is shown
Skip to the content—Any pageKeyboard shortcut linkLoad a page and press Tab once; press EnterA “Skip to the content” link appears at the top; Enter jumps past the navbar to the page content
Pop-up messages—Any action with a result (login, reserve, renew, list changes)MessagesDo several actionsGreen for success, red for errors, orange for warnings, blue for information. They close after the time chosen in My Preferences, or when clicked
Dialogue boxes—Any dialogue boxGeneral behaviourOpen a dialogue box; press Tab many times; press Escape; click the X
  • The page behind is darkened and cannot be scrolled
  • Tab only moves between items inside the box
  • Escape and X close it (where allowed), and focus goes back to the button that opened it
Loading screens—Slow connection (e.g. browser set to slow 3G)PlaceholdersOpen pagesGrey placeholder shapes matching the page layout show while content loads, then are replaced by the real content
Page not found——Wrong addressGo to /this-page-does-not-exist“Lost in the library?” — “It looks like that page doesn’t exist, please check the URL and try again.” with the navbar and footer still working
Error page—An unexpected error happensFriendly error(A technical tester can trigger this)“Oops!” with an explanation, a “Reload the page” button and a link to the Contact Us form
Website unavailable—The app’s settings cannot be loaded (e.g. during maintenance)Maintenance messageOpen the app during maintenanceA friendly page such as “Website Under Maintenance”, “Configuration in Progress” or “Website Temporarily Unavailable” with advice to try later
JavaScript off—JavaScript switched off in the browserWarningOpen the appA message says JavaScript is disabled and some functionality may not work

45. Footer

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
FooterJoin The Library bannerRegistration allowed in the CMSBanner changes with loginRefresh any page; log in / out
  • Logged out: “Join {library}” with a “Join” button
  • Logged in: only the library name shows (no Join button)
  • Registration not allowed: no banner
FooterJoin buttonLogged outButton worksClick JoinThe Registration page opens
FooterCustom contentA primary channel with text in its “Description Text” box (Mobile Channel Settings)Custom footerRefresh any pageThe footer shows that content (titles, links, images, layout) instead of the automatic footer
FooterAutomatic — library name, address, phone, emailPrimary channel with an empty Description Text; Published Title, Address, Phone, Email setAutomatic detailsRefresh any page
  • Library name in bold in the middle column
  • Address under it
  • Phone (tap-to-call) and email (opens email program); on desktop prefixed “T:” and “E:”
FooterAutomatic — opening hoursEmpty Description Text; opening hours setOpening hoursRefresh on desktop, tablet and mobile
  • Desktop only (hidden on tablet / mobile), on the left with the title “Opening Hours”
  • 7 rows; closed days say “Closed”
  • The first day of the week follows the library’s locale
FooterAutomatic — social mediaEmpty Description Text; at least one of Facebook, X (Twitter), Instagram, YouTube, TikTok links setSocial iconsRefresh; click each iconEach link set adds the right icon; each opens in a new tab
FooterAutomatic — mapEmpty Description Text; latitude and longitude set in the primary channelMapRefresh on desktop and mobileA map centred on the library shows on the right. Without a Google Maps key set, the map shows on desktop only
FooterCopyright line—VersionLook at the very bottom“© {current year} LUCi by SOLUS - v 1.7.3.6”

46. Kiosk Mode

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
KioskLogin“Kiosk Mode” switched on for the app in the CMSKiosk loginOpen the login formNo “Remember me” box
KioskShort sessionAs above; logged inAuto logoutLog in and leave the screenThe session lasts about 3 minutes; the warning box shows at 60 seconds left (section 20); any tap resets the timer
KioskNever leaving the appAs aboveQR codes instead of linksCheck out an eTitle; open “Read” on an eContent loan; open an eTitle with Preview / Download / supplier linksInstead of opening new tabs, QR codes are shown (“Scan this QR code with your phone to access the title”)
KioskNo sharingAs aboveShare hiddenLook for Share buttonsShare buttons are not shown

47. Colour Themes, Languages & Right-to-Left

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
ThemesLibrary themeThemes set up in the CMSDefault themeOpen the app logged outThe library’s colours and logos are used everywhere (navbar, buttons, links, footer)
ThemesDark themesA dark themeReadabilityChoose a dark theme in My PreferencesAll text, icons, dialogue boxes, tables and forms stay readable; dialogue boxes get a border
ThemesCustom CSSCustom CSS set in the CMSLibrary stylingRefresh any pageThe custom styles are applied
LanguagesFull translationMore than one languageNo untranslated textSwitch to each language and visit every sectionAll app text is translated (no codes such as “components.login.title” show); dates follow the language
LanguagesRight-to-leftArabic availableLayout mirrorsSwitch to ArabicThe whole layout is mirrored right-to-left (navbar, carousels, arrows, forms, side menu, share menu) and Arabic fonts load
LanguagesDefault language—First visitOpen the app in a private windowThe library’s default language is used

48. Screen Sizes (Responsiveness)

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
ResponsiveMobile (up to ~768px)Phone, or narrow browserMobile layoutVisit every section
  • Side menu instead of navbar
  • About 3 book jackets per row; 2 event cards per row
  • Filters panel opens full screen
  • Account tabs and footer tray tabs show icons only
  • Nothing is cut off and there is no sideways scrolling of the page
ResponsiveTabletTablet, portrait and landscapeTablet layoutVisit every section; rotate the device5–6 jackets per row; layout adjusts after rotating
ResponsiveDesktopDesktop / laptopDesktop layoutVisit every sectionFull navbar; 8–10 jackets per row; filters panel at the side; footer shows opening hours and map
ResponsiveVery large screens2560px or 4K screen (or browser zoomed out)Large layoutVisit Home and EventsUp to 12–14 jackets and 6–7 event cards per row; pictures stay sharp
ResponsiveBrowser zoom—Zoom to 200%Zoom the browser to 200%Content reflows and remains usable

49. Per-Library Customisations

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
CustomisationsSunderland (live and preview)Testing the Sunderland appSpecial layoutVisit Home, Events and the navbar / menus
  • A flat hero banner instead of carousels on Home and Events
  • Text-only navbar (no icons); the search sits at the end of the navbar as a simple item; no avatar in the user menu
  • No Contact Us in the menus, and /contact-us shows the “Lost in the library?” page
  • A “Home” link in the navbar and side menu that opens the library’s main website in a new tab
CustomisationsHamburg (live and test)Testing the Hamburg app; Suggest Purchase onRequest formOpen /request-itemThe form has: Name (required, at least 2 characters), E-Mail (optional), Library card number (optional), plus the item details
CustomisationsAll other librariesAny other appStandard behaviourVisit the same areasStandard carousels, icons, Contact Us and request form from the CMS

50. Appendix — Technical Checks (Optional)

These checks need browser developer tools or technical knowledge. They can be skipped by non-technical testers and handed to the development team.

Test IDElementSub-ElementPrerequisitesThe test(s)Action RequiredExpected Result
SEOPage titles—Browser tab titlesVisit pages and read the browser tab titleEach page has a meaningful title, e.g. “{Page} | {Library}”; item pages use the title name; events and posts use their names
SEOrobots.txt / sitemap.xmlLive and preview sitesSearch engine filesOpen /robots.txt and /sitemap.xml
  • Live: search engines are allowed except /user/account
  • Preview: search engines are blocked
  • The sitemap lists public pages
SEOItem dataAn item pageStructured dataView the page source of /manifestations/{id}Book information (name, author, ISBN, image, address) is included for search engines; expired events are marked not to be indexed
SecurityProtected pagesLogged outRedirect to loginOpen /user/account, /user/loans, /user/reservations, /recommendations/userEach redirects to /user/login
SecuritySecurity headers—Content-Security-PolicyCheck the response headers in developer toolsA Content-Security-Policy header is present; no console errors about blocked scripts on normal use
SecurityDomain redirectsAlias domains / redirects set up for the libraryRedirectsOpen an alias domain or an old redirected addressThe browser is sent permanently to the main domain / new address
SecurityTest pagesLive siteDeveloper pages hiddenOpen /test-pagesNot available on the live site
SecurityMissing files—Quick not-foundOpen /service-worker.js or /apple-touch-icon-precomposed.pngA plain “not found” response, not the full app page
SecurityForms without verificationTurnstile / reCAPTCHA set upBot protectionSubmit login, registration, contact, request and reset forms with the check expired“Security verification expired or invalid. Please refresh and try again.”
Health/api/health—Service healthOpen /api/healthA status report shows the app version and that its connections are working
AnalyticsConsent respectedAnalytics set upTracking only after consentCheck network requests before and after accepting cookiesNo analytics requests before accepting; analytics loads only after “I accept all cookies”

LUCi Starter Testing Notes — V1.7.3.6