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  }