github.com/graemephi/kahugo@v0.62.3-0.20211121071557-d78c0423784d/modules/npm/package_builder_test.go (about)

     1  // Copyright 2020 The Hugo Authors. All rights reserved.
     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  // http://www.apache.org/licenses/LICENSE-2.0
     7  //
     8  // Unless required by applicable law or agreed to in writing, software
     9  // distributed under the License is distributed on an "AS IS" BASIS,
    10  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11  // See the License for the specific language governing permissions and
    12  // limitations under the License.
    13  
    14  package npm
    15  
    16  import (
    17  	"strings"
    18  	"testing"
    19  
    20  	qt "github.com/frankban/quicktest"
    21  )
    22  
    23  const templ = `{
    24          "name": "foo",
    25          "version": "0.1.1",
    26          "scripts": {},
    27           "dependencies": {
    28                  "react-dom": "1.1.1",
    29                  "tailwindcss": "1.2.0",
    30                  "@babel/cli": "7.8.4",
    31                  "@babel/core": "7.9.0",
    32                  "@babel/preset-env": "7.9.5"
    33          },
    34          "devDependencies": {
    35                  "postcss-cli": "7.1.0",
    36                  "tailwindcss": "1.2.0",
    37                  "@babel/cli": "7.8.4",
    38                  "@babel/core": "7.9.0",
    39                  "@babel/preset-env": "7.9.5"
    40          }
    41  }`
    42  
    43  func TestPackageBuilder(t *testing.T) {
    44  	c := qt.New(t)
    45  
    46  	b := newPackageBuilder("", strings.NewReader(templ))
    47  	c.Assert(b.Err(), qt.IsNil)
    48  
    49  	b.Add("mymod", strings.NewReader(`{
    50  "dependencies": {
    51  	 "react-dom": "9.1.1",
    52  	 "add1": "1.1.1"
    53  },
    54  "devDependencies": {
    55  	 "tailwindcss": "error",
    56  	 "add2": "2.1.1"
    57  }	
    58  }`))
    59  
    60  	b.Add("mymod", strings.NewReader(`{
    61  "dependencies": {
    62  	 "react-dom": "error",
    63  	 "add1": "error",
    64  	 "add3": "3.1.1"
    65  },
    66  "devDependencies": {
    67  	 "tailwindcss": "error",
    68  	 "add2": "error",
    69  	 "add4": "4.1.1"
    70  	 
    71  }	
    72  }`))
    73  
    74  	c.Assert(b.Err(), qt.IsNil)
    75  
    76  	c.Assert(b.dependencies, qt.DeepEquals, map[string]interface{}{
    77  		"@babel/cli":        "7.8.4",
    78  		"add1":              "1.1.1",
    79  		"add3":              "3.1.1",
    80  		"@babel/core":       "7.9.0",
    81  		"@babel/preset-env": "7.9.5",
    82  		"react-dom":         "1.1.1",
    83  		"tailwindcss":       "1.2.0",
    84  	})
    85  
    86  	c.Assert(b.devDependencies, qt.DeepEquals, map[string]interface{}{
    87  		"tailwindcss":       "1.2.0",
    88  		"@babel/cli":        "7.8.4",
    89  		"@babel/core":       "7.9.0",
    90  		"add2":              "2.1.1",
    91  		"add4":              "4.1.1",
    92  		"@babel/preset-env": "7.9.5",
    93  		"postcss-cli":       "7.1.0",
    94  	})
    95  }