summary refs log tree commit diff stats
path: root/tests/js/tos.nim
blob: 07eb3aaa3ed4c06454dcca3e6b45e277cccdc210 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
static: doAssert defined(nodejs)

import os

block:
  doAssert "./foo//./bar/".normalizedPath == "foo/bar"
  doAssert relativePath(".//foo/bar", "foo") == "bar"
  doAssert "/".isAbsolute
  doAssert not "".isAbsolute
  doAssert not ".".isAbsolute
  doAssert not "foo".isAbsolute
  doAssert relativePath("", "bar") == ""
  doAssert normalizedPath(".///foo//./") == "foo"
  let cwd = getCurrentDir()

  let isWindows = '\\' in cwd
  # defined(windows) doesn't work with -d:nodejs but should
  # these actually break because of that (see https://github.com/nim-lang/Nim/issues/13469)
  if not isWindows:
    doAssert cwd.isAbsolute
    doAssert relativePath(getCurrentDir() / "foo", "bar") == "../foo"

import std/sequtils

template main =
  putEnv("foo", "bar")
  doAssert getEnv("foo") == "bar"
  doAssert existsEnv("foo")

  putEnv("foo", "")
  doAssert existsEnv("foo")
  putEnv("foo", "bar2")
  doAssert getEnv("foo") == "bar2"

  when nimvm:
    discard
  else:
    # need support in vmops: envPairs, delEnv
    let s = toSeq(envPairs())
    doAssert ("foo", "bar2") in s
    doAssert ("foo", "bar") notin s

    delEnv("foo")
    doAssert not existsEnv("foo")

static: main()
main()