github.com/getgauge/gauge@v1.6.9/skel/gen_test.go (about) 1 /*---------------------------------------------------------------- 2 * Copyright (c) ThoughtWorks, Inc. 3 * Licensed under the Apache License, Version 2.0 4 * See LICENSE in the project root for license information. 5 *----------------------------------------------------------------*/ 6 7 package skel 8 9 import ( 10 "os" 11 "path/filepath" 12 "testing" 13 14 "github.com/getgauge/common" 15 ) 16 17 func TestCreateSkelFilesIfRequired(t *testing.T) { 18 config := "config" 19 origGaugeHome := os.Getenv("GAUGE_HOME") 20 gaugeHomeDir := filepath.Join("_testdata", "GaugeHome") 21 os.RemoveAll(gaugeHomeDir) 22 err := os.Mkdir(gaugeHomeDir, common.NewDirectoryPermissions) 23 if err != nil { 24 t.Fatalf("Unable to create Gauge Root Dir, %s", err) 25 } 26 os.Setenv("GAUGE_HOME", gaugeHomeDir) 27 expectedFiles := []string{ 28 "notice.md", 29 "gauge.properties", 30 filepath.Join("skel", "example.spec"), 31 filepath.Join("skel", ".gitignore"), 32 filepath.Join("skel", "env", "default.properties"), 33 } 34 35 CreateSkelFilesIfRequired() 36 37 for _, expectedFile := range expectedFiles { 38 if _, err := os.Stat(filepath.Join(gaugeHomeDir, config, expectedFile)); err != nil { 39 t.Errorf("Expected %s to exist. %s", expectedFile, err) 40 } 41 } 42 err = os.RemoveAll(gaugeHomeDir) 43 if err != nil { 44 t.Fatalf("Unable to clean up Gauge Root Dir, %s", err) 45 } 46 os.Setenv("GAUGE_HOME", origGaugeHome) 47 }