Skip to content

Commit

Permalink
add basic tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Brooke Hatton committed Mar 23, 2022
1 parent 3024719 commit c50e99c
Show file tree
Hide file tree
Showing 14 changed files with 298 additions and 0 deletions.
10 changes: 10 additions & 0 deletions barchart_test.go
@@ -1,6 +1,7 @@
package pterm_test

import (
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -437,3 +438,12 @@ func TestBarChartPrinter_WithWidth(t *testing.T) {
testza.AssertEqual(t, s, p2.Width)
testza.AssertZero(t, p.Width)
}

func TestBarChartPrinter_WithWriter(t *testing.T) {
p := pterm.BarChartPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
10 changes: 10 additions & 0 deletions basic_text_printer_test.go
Expand Up @@ -3,6 +3,7 @@ package pterm_test
import (
"errors"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -103,3 +104,12 @@ func TestBasicTextPrinter_WithStyle(t *testing.T) {

testza.AssertEqual(t, s, p2.Style)
}

func TestBasicTextPrinter_WithWriter(t *testing.T) {
p := pterm.BasicTextPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
10 changes: 10 additions & 0 deletions bigtext_printer_test.go
Expand Up @@ -2,6 +2,7 @@ package pterm_test

import (
"fmt"
"os"
"strings"
"testing"

Expand Down Expand Up @@ -154,3 +155,12 @@ func TestDefaultLettersMaxHeight(t *testing.T) {
testza.AssertTrue(t, h <= maxHeight, fmt.Sprintf("'%s' is too high", s))
}
}

func TestBigTextPrinter_WithWriter(t *testing.T) {
p := pterm.BigTextPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
10 changes: 10 additions & 0 deletions box_printer_test.go
Expand Up @@ -3,6 +3,7 @@ package pterm_test
import (
"errors"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -334,3 +335,12 @@ func TestBoxPrinter_WithHorizontalString(t *testing.T) {
testza.AssertEqual(t, "-", p2.HorizontalString)
testza.AssertZero(t, p.HorizontalString)
}

func TestBoxPrinter_WithWriter(t *testing.T) {
p := pterm.BoxPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
165 changes: 165 additions & 0 deletions brooke/thing.go
@@ -0,0 +1,165 @@
package main

import (
"io"
"os"
"strconv"
"strings"
"time"

"github.com/pterm/pterm"
)

const delay = time.Second

func introScreen() {
ptermLogo, _ := pterm.DefaultBigText.WithLetters(
pterm.NewLettersFromStringWithStyle("P", pterm.NewStyle(pterm.FgLightCyan)),
pterm.NewLettersFromStringWithStyle("Term", pterm.NewStyle(pterm.FgLightMagenta))).
Srender()

pterm.DefaultCenter.Print(ptermLogo)

pterm.DefaultCenter.Print(pterm.DefaultHeader.WithFullWidth().WithBackgroundStyle(pterm.NewStyle(pterm.BgLightBlue)).WithMargin(10).Sprint("PTDP - PTerm Demo Program"))

pterm.Info.Println("This animation was generated with the latest version of PTerm!" +
"\nPTerm works on nearly every terminal and operating system." +
"\nIt's super easy to use!" +
"\nIf you want, you can customize everything :)" +
"\nYou can see the code of this demo in the " + pterm.LightMagenta("./_examples/demo") + " directory." +
"\n" +
"\nThis demo was updated at: 02 Jan 2006 - 15:04:05 MST")
pterm.Println()
introSpinner, _ := pterm.DefaultSpinner.WithShowTimer(false).WithRemoveWhenDone(true).Start("Waiting for 15 seconds...")
time.Sleep(delay)
for i := 14; i > 0; i-- {
if i > 1 {
introSpinner.UpdateText("Waiting for " + strconv.Itoa(i) + " seconds...")
} else {
introSpinner.UpdateText("Waiting for " + strconv.Itoa(i) + " second...")
}
time.Sleep(delay)
}
introSpinner.Stop()
}

var pseudoProgramList = strings.Split("pseudo-excel pseudo-photoshop pseudo-chrome pseudo-outlook pseudo-explorer "+
"pseudo-dops pseudo-git pseudo-vsc pseudo-intellij pseudo-minecraft pseudo-scoop pseudo-chocolatey", " ")

var b io.Writer = os.Stdout

func main() {

spinnerSuccess, _ := pterm.DefaultSpinner.Start("Doing something important... (will succeed)")

spinnerFail, _ := pterm.DefaultSpinner.WithWriter(os.Stderr).Start("Doing something important... (will fail)")
time.Sleep(time.Second * 2) // Simulate 3 seconds of processing something.
spinnerFail.Fail() // Resolve spinner with success message.
time.Sleep(time.Second * 2) // Simulate 3 seconds of processing something.
spinnerSuccess.Success() // Resolve spinner with success message.
// d := pterm.TableData{
// {"Firstname", "Lastname", "Email"},
// {"Paul", "Dean", "nisi.dictum.augue@velitAliquam.co.uk"},
// {"Callie", "Mckay", "egestas.nunc.sed@est.com"},
// {"Libby", "Camacho", "aliquet.lobortis@semper.com"},
// }
// pterm.DefaultTable.WithHasHeader().WithData(d).Render()
// // WithLeftAlignment
// printer := pterm.DefaultTable.WithHasHeader().WithLeftAlignment().WithData(d)
// printer.Render()

// introScreen()
// pseudoApplicationHeader()
// time.Sleep(delay)
// installingPseudoList()
// time.Sleep(delay * 2)
// pterm.DefaultSection.WithLevel(2).Println("Program Install Report")
// installedProgramsSize()
// time.Sleep(delay * 4)
// pterm.DefaultSection.Println("Tree Printer")
// installedTree()
// time.Sleep(delay * 4)
// pterm.DefaultSection.Println("TrueColor Support")
// fadeText()
// time.Sleep(delay)
// pterm.DefaultSection.Println("Bullet List Printer")
// listPrinter()
}

func installedTree() {
leveledList := pterm.LeveledList{
pterm.LeveledListItem{Level: 0, Text: "C:"},
pterm.LeveledListItem{Level: 1, Text: "Go"},
pterm.LeveledListItem{Level: 1, Text: "Windows"},
pterm.LeveledListItem{Level: 1, Text: "Programs"},
}
for _, s := range pseudoProgramList {
if s != "pseudo-minecraft" {
leveledList = append(leveledList, pterm.LeveledListItem{Level: 2, Text: s})
}
if s == "pseudo-chrome" {
leveledList = append(leveledList, pterm.LeveledListItem{Level: 3, Text: "pseudo-Tabs"})
leveledList = append(leveledList, pterm.LeveledListItem{Level: 3, Text: "pseudo-Extensions"})
leveledList = append(leveledList, pterm.LeveledListItem{Level: 4, Text: "Refined GitHub"})
leveledList = append(leveledList, pterm.LeveledListItem{Level: 4, Text: "GitHub Dark Theme"})
leveledList = append(leveledList, pterm.LeveledListItem{Level: 3, Text: "pseudo-Bookmarks"})
leveledList = append(leveledList, pterm.LeveledListItem{Level: 4, Text: "PTerm"})
}
}

pterm.DefaultTree.WithRoot(pterm.NewTreeFromLeveledList(leveledList)).Render()
}

func installingPseudoList() {
pterm.DefaultSection.Println("Installing pseudo programs")

p, _ := pterm.DefaultProgressbar.WithTotal(len(pseudoProgramList)).WithTitle("Installing stuff").Start()
for i := 0; i < p.Total; i++ {
p.UpdateTitle("Installing " + pseudoProgramList[i])
if pseudoProgramList[i] == "pseudo-minecraft" {
pterm.Warning.Println("Could not install pseudo-minecraft\nThe company policy forbids games.")
} else {
pterm.Success.Println("Installing " + pseudoProgramList[i])
p.Increment()
}
time.Sleep(delay / 2)
}
p.Stop()
}

func listPrinter() {
pterm.NewBulletListFromString(`Good bye
Have a nice day!`, " ").Render()
}

func fadeText() {
from := pterm.NewRGB(0, 255, 255) // This RGB value is used as the gradients start point.
to := pterm.NewRGB(255, 0, 255) // This RGB value is used as the gradients first point.

str := "If your terminal has TrueColor support, you can use RGB colors!\nYou can even fade them :)"
strs := strings.Split(str, "")
var fadeInfo string // String which will be used to print info.
// For loop over the range of the string length.
for i := 0; i < len(str); i++ {
// Append faded letter to info string.
fadeInfo += from.Fade(0, float32(len(str)), float32(i), to).Sprint(strs[i])
}
pterm.Info.Println(fadeInfo)
}

func installedProgramsSize() {
d := pterm.TableData{{"Program Name", "Status", "Size"}}
for _, s := range pseudoProgramList {
if s != "pseudo-minecraft" {
d = append(d, []string{s, pterm.LightGreen("pass"), "50mb"})
} else {
d = append(d, []string{pterm.LightRed(s), pterm.LightRed("fail"), "0mb"})
}
}
pterm.DefaultTable.WithHasHeader().WithData(d).Render()
}

func pseudoApplicationHeader() *pterm.TextPrinter {
return pterm.DefaultHeader.WithBackgroundStyle(pterm.NewStyle(pterm.BgLightBlue)).WithMargin(10).Println(
"Pseudo Application created with PTerm")
}
10 changes: 10 additions & 0 deletions bulletlist_printer_test.go
Expand Up @@ -3,6 +3,7 @@ package pterm_test
import (
"fmt"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -153,3 +154,12 @@ func TestNewBulletListFromString(t *testing.T) {

testza.AssertEqual(t, p, p2)
}

func TestBulletListPrinter_WithWriter(t *testing.T) {
p := pterm.BulletListPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
10 changes: 10 additions & 0 deletions center_printer_test.go
Expand Up @@ -3,6 +3,7 @@ package pterm_test
import (
"errors"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -151,3 +152,12 @@ func TestCenterPrinter_SprintLineLongerThanTerminalWithCenterEachLineSeparately(

testza.AssertContains(t, p2, "a")
}

func TestCenterPrinter_WithWriter(t *testing.T) {
p := pterm.CenterPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
10 changes: 10 additions & 0 deletions header_printer_test.go
Expand Up @@ -3,6 +3,7 @@ package pterm_test
import (
"errors"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -145,3 +146,12 @@ func TestHeaderPrinter_WithTextStyle(t *testing.T) {

testza.AssertEqual(t, s, p2.TextStyle)
}

func TestHeaderPrinter_WithWriter(t *testing.T) {
p := pterm.HeaderPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
10 changes: 10 additions & 0 deletions panel_printer_test.go
Expand Up @@ -2,6 +2,7 @@ package pterm_test

import (
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -150,3 +151,12 @@ func TestPanelPrinter_WithBoxPrinter(t *testing.T) {
testza.AssertEqual(t, pterm.DefaultBox, p2.BoxPrinter)
testza.AssertZero(t, p.BoxPrinter)
}

func TestPanelPrinter_WithWriter(t *testing.T) {
p := pterm.PanelPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
10 changes: 10 additions & 0 deletions paragraph_printer_test.go
Expand Up @@ -3,6 +3,7 @@ package pterm_test
import (
"errors"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -111,3 +112,12 @@ func TestParagraphPrinter_WithMaxWidth(t *testing.T) {

testza.AssertEqual(t, 1337, p2.MaxWidth)
}

func TestParagraphPrinter_WithWriter(t *testing.T) {
p := pterm.ParagraphPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}
13 changes: 13 additions & 0 deletions prefix_printer_test.go
Expand Up @@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -412,3 +413,15 @@ func TestPrefixPrinter_WithLineNumberOffset(t *testing.T) {
})
}
}

func TestPrefixPrinter_WithWriter(t *testing.T) {
for _, p := range prefixPrinters {
t.Run("", func(t *testing.T) {
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
})
}
}
10 changes: 10 additions & 0 deletions section_printer_test.go
Expand Up @@ -3,6 +3,7 @@ package pterm_test
import (
"errors"
"io"
"os"
"testing"

"github.com/MarvinJWendt/testza"
Expand Down Expand Up @@ -135,3 +136,12 @@ func TestSectionPrinter_WithIndentCharacter(t *testing.T) {
testza.AssertEqual(t, "#", p2.IndentCharacter)
testza.AssertZero(t, p.IndentCharacter)
}

func TestSectionPrinter_WithWriter(t *testing.T) {
p := pterm.SectionPrinter{}
s := os.Stderr
p2 := p.WithWriter(s)

testza.AssertEqual(t, s, p2.Writer)
testza.AssertZero(t, p.Writer)
}

0 comments on commit c50e99c

Please sign in to comment.