Private/Generator/Tests/ConvertTo-OpenApiGenSingular.Tests.ps1
|
BeforeAll { $env:TCS_CONFIG_ROOT = Join-Path -Path $TestDrive -ChildPath 'config' $env:TCS_SKIP_UPDATE_CHECK = '1' $env:TCS_TELEMETRY_OPTOUT = '1' $ModuleRoot = Split-Path -Path (Split-Path -Path (Split-Path -Path $PSScriptRoot -Parent) -Parent) -Parent Import-Module -Name (Join-Path -Path $ModuleRoot -ChildPath 'tcs.openapi.psd1') -Force $RepoRoot = Split-Path -Path (Split-Path -Path $ModuleRoot -Parent) -Parent . (Join-Path -Path $RepoRoot -ChildPath 'tests/Helpers/New-TestOpenApiModel.ps1') } Describe 'ConvertTo-OpenApiGenSingular' { It 'singularises <Word> to <Expected>' -TestCases @( @{ Word = 'Pets'; Expected = 'Pet' } @{ Word = 'Policies'; Expected = 'Policy' } @{ Word = 'Boxes'; Expected = 'Box' } @{ Word = 'Matches'; Expected = 'Match' } @{ Word = 'Addresses'; Expected = 'Address' } @{ Word = 'People'; Expected = 'Person' } @{ Word = 'Children'; Expected = 'Child' } @{ Word = 'Statuses'; Expected = 'Status' } @{ Word = 'Indices'; Expected = 'Index' } @{ Word = 'Ids'; Expected = 'Id' } @{ Word = 'Responses'; Expected = 'Response' } @{ Word = 'Caches'; Expected = 'Cache' } @{ Word = 'pets'; Expected = 'pet' } ) { param($Word, $Expected) InModuleScope tcs.openapi -Parameters @{ Word = $Word } { param($Word) ConvertTo-OpenApiGenSingular -Word $Word } | Should -BeExactly $Expected } It 'leaves <Word> unchanged' -TestCases @( @{ Word = 'Status' }, @{ Word = 'Address' }, @{ Word = 'Analysis' }, @{ Word = 'Data' }, @{ Word = 'Metadata' }, @{ Word = 'News' }, @{ Word = 'Series' }, @{ Word = 'Pet' }, @{ Word = 'Is' }, @{ Word = 'Alias' } ) { param($Word) InModuleScope tcs.openapi -Parameters @{ Word = $Word } { param($Word) ConvertTo-OpenApiGenSingular -Word $Word } | Should -BeExactly $Word } } |