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()