v7
 1// Copyright 2021 Google LLC
 2//
 3// Licensed under the Apache License, Version 2.0 (the "License");
 4// you may not use this file except in compliance with the License.
 5// You may obtain a copy of the License at
 6//
 7//     https://www.apache.org/licenses/LICENSE-2.0
 8//
 9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15import { suite } from 'uvu'
16import * as assert from 'uvu/assert'
17import '../build/globals.js'
18
19const test = suite('win32')
20
21$.verbose = false
22
23if (process.platform === 'win32') {
24  test('should work with windows-specific commands', async () => {
25    const p = await $`echo $0` // Bash is first by default.
26    assert.match(p.stdout, /bash/)
27    await within(async () => {
28      $.shell = which.sync('powershell.exe')
29      $.quote = quotePowerShell
30      const p = await $`get-host`
31      assert.match(p.stdout, /PowerShell/)
32    })
33  })
34
35  test('quotePowerShell works', async () => {
36    await within(async () => {
37      $.shell = which.sync('powershell.exe')
38      $.quote = quotePowerShell
39      const p = await $`echo ${`Windows 'rulez!'`}`
40      assert.match(p.stdout, /Windows 'rulez!'/)
41    })
42  })
43}
44
45test.run()