By: Lars Wirzenius
2023-09-17 17:07
clab
is a command line address book application. It has no
interactive features. This document collects its acceptance criteria.
given an installed clab when I run clab lint then command is successful when I run clab search Alice then command is successful then stdout is exactly "" when I try to run clab mutt-query Alice then command fails
Next, let's add records for Alice and Bob, and make sure searches find only the right records.
given an installed clab given file .local/share/clab/address-book.yaml from address-book.yaml when I run clab lint then command is successful when I run clab list then command is successful then stdout is valid YAML then stdout contains "Alice Atherthon" then stdout contains "Bob Bobbington" when I run clab search Alice then command is successful then stdout is valid YAML then stdout contains "Alice Atherthon" then stdout doesn't contain "Bob" when I run clab mutt-query Alice then command is successful then stdout is exactly "clab found matches:\nalice@example.com\tAlice Atherthon\n"
- name: Alice Atherthon email: work: alice@example.com tags: [co-worker] last_checked: 2021-09 - name: Bob Bobbington email: personal: bob@example.com last_checked: 2021-09
--- - name: Alice Atherthon email: work: alice@example.com tags: - co-worker last_checked: 2021-09 - name: Bob Bobbington email: personal: bob@example.com last_checked: 2021-09
This scenario verifies that clab
can find entries based on tags.
given an installed clab given file .local/share/clab/address-book.yaml from address-book.yaml when I run clab tagged co-worker then command is successful then stdout contains "Alice Atherthon" then stdout doesn't contain "Bob"
This scenario verifies that clab
does a full text search.
given an installed clab given file .local/share/clab/address-book.yaml from address-book.yaml when I run clab search example then command is successful then stdout contains "Alice Atherthon" then stdout contains "Bob" when I run clab search email then command is successful then stdout contains "Alice Atherthon" then stdout contains "Bob"
This scenario verifies that clab
can reformat the address book in
place.
given an installed clab given file .local/share/clab/address-book.yaml from address-book.yaml given file reformatted.yaml from address-book-reformatted when I run clab reformat then command is successful then files .local/share/clab/address-book.yaml and reformatted.yaml match