tests/user-interface.Tests.ps1

[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingCmdletAliases', 'repeat')]
Param()

& (Join-Path $PSScriptRoot '_setup.ps1') 'user-interface'

Describe 'Write-Repeat' {
    It 'can create string of repeated characters and strings' {
        Write-Repeat 'O' | Should -Be 'O'
        Write-Repeat 'O' -Times 0 | Should -Be ''
        Write-Repeat 'O' -Times 3 | Should -Be 'OOO'
        Write-Repeat '' -Times 42 | Should -Be ''
        'O' | Write-Repeat | Should -Be 'O'
        'O' | Write-Repeat -Times 0 | Should -Be ''
        'O' | Write-Repeat -Times 3 | Should -Be 'OOO'
        '' | Write-Repeat -Times 42 | Should -Be ''
        10 | Write-Repeat -Times 3 | Should -Be '101010'
        0 | Write-Repeat -Times 6 | Should -Be '000000'
        1,2,3 | Write-Repeat -Times 3 | Should -Be '111','222','333'
    }
    It 'provides aliases for ease of use' {
        'na' | repeat -x 3 | Should -Be 'nanana'
    }
}