From d99bd8fc9e7173561c8695185f04b4c938fd8daa Mon Sep 17 00:00:00 2001 From: dfinke Date: Sat, 10 Jun 2023 15:45:35 -0400 Subject: [PATCH] add tests --- __tests__/Get-ExcelFileSchema.tests.ps1 | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 __tests__/Get-ExcelFileSchema.tests.ps1 diff --git a/__tests__/Get-ExcelFileSchema.tests.ps1 b/__tests__/Get-ExcelFileSchema.tests.ps1 new file mode 100644 index 0000000..c7e0f95 --- /dev/null +++ b/__tests__/Get-ExcelFileSchema.tests.ps1 @@ -0,0 +1,53 @@ +if (-not (Get-command Import-Excel -ErrorAction SilentlyContinue)) { + Import-Module $PSScriptRoot\..\ImportExcel.psd1 +} + +Describe "Test getting the schema of an Excel file" -Tag GetExcelFileSchema { + + BeforeAll { + $script:excelFile = "TestDrive:\test.xlsx" + $data = ConvertFrom-Csv @" +Region,State,Units,Price +West,Texas,927,923.71 +North,Tennessee,466,770.67 +East,Florida,520,458.68 +East,Maine,828,661.24 +West,Virginia,465,053.58 +North,Missouri,436,235.67 +South,Kansas,214,992.47 +North,North Dakota,789,640.72 +South,Delaware,712,508.55 +"@ + $data | Export-Excel $excelFile + } + + It "Test Get-ExcelFileSchema function exists" { + $function = Get-Command Get-ExcelFileSchema -ErrorAction SilentlyContinue + $function | Should -Not -Be $null + } + + It "Test Get-ExcelFileSchema returns json" { + $actual = Get-ExcelFileSchema -Path $excelFile + $actual | Should -Not -Be $null + $actual | Should -BeOfType [string] + } + + It "Test Get-ExcelFileSchema correct json" { + $actual = Get-ExcelFileSchema -Path $excelFile + + $actual = $actual | ConvertFrom-Json + $actual.ExcelFile | Should -Be "test.xlsx" + $actual.WorksheetName | Should -Be "Sheet1" + $actual.Visible | Should -Be $true + $actual.Rows | Should -Be 10 + $actual.Columns | Should -Be 4 + $actual.Address | Should -Be "A1:D10" + $actual.Path | Should -Be "TestDrive:\" + + $actual.PropertyNames.Count | Should -Be 4 + $actual.PropertyNames[0] | Should -Be "Region" + $actual.PropertyNames[1] | Should -Be "State" + $actual.PropertyNames[2] | Should -Be "Units" + $actual.PropertyNames[3] | Should -Be "Price" + } +} \ No newline at end of file