Skip to content

Commit

Permalink
Add specs for wtf.ChecklistItem
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris Cummer committed Jul 13, 2018
1 parent 5ebab79 commit 857702e
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
5 changes: 5 additions & 0 deletions wtf/checklist_item.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package wtf

// ChecklistItem is a module for creating generic checklist implementations
// See 'Todo' for an implementation example
type ChecklistItem struct {
Checked bool
Text string
}

// CheckMark returns the string used to indicate a ChecklistItem is checked or unchecked
func (item *ChecklistItem) CheckMark() string {
if item.Checked {
return Config.UString("wtf.mods.todo.checkedIcon", "x")
Expand All @@ -13,6 +16,8 @@ func (item *ChecklistItem) CheckMark() string {
}
}

// Toggle changes the checked state of the ChecklistItem
// If checked, it is unchecked. If unchecked, it is checked
func (item *ChecklistItem) Toggle() {
item.Checked = !item.Checked
}
42 changes: 42 additions & 0 deletions wtftests/checklist_item_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package wtftests

import (
"testing"

"github.com/olebedev/config"
. "github.com/senorprogrammer/wtf/wtf"
. "github.com/stretchr/testify/assert"
)

/* -------------------- CheckMark -------------------- */

func TestCheckMark(t *testing.T) {
loadConfig()

item := ChecklistItem{}
Equal(t, " ", item.CheckMark())

item = ChecklistItem{Checked: true}
Equal(t, "x", item.CheckMark())
}

/* -------------------- Toggle -------------------- */

func TestToggle(t *testing.T) {
loadConfig()

item := ChecklistItem{}
Equal(t, false, item.Checked)

item.Toggle()
Equal(t, true, item.Checked)

item.Toggle()
Equal(t, false, item.Checked)
}

/* -------------------- helpers -------------------- */

func loadConfig() {
Config, _ = config.ParseYamlFile("../_sample_configs/simple_config.yml")
}

0 comments on commit 857702e

Please sign in to comment.