mirror of
https://github.com/hanzoai/forge.git
synced 2026-10-30 15:00:39 +00:00
Source files keep their SPDX-License-Identifier and Hanzo copyright line; the Gitea, Gogs and LFS Test Server copyrights they used to repeat now live once in NOTICE, alongside LICENSE. The header lint accepts any copyright line above the SPDX line, so it no longer demands an upstream one. Co-authored-by: Hanzo Dev <[email protected]>
177 lines
3.2 KiB
Go
177 lines
3.2 KiB
Go
// Copyright 2026 Hanzo AI, Inc. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package repository
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_getLicense(t *testing.T) {
|
|
type args struct {
|
|
name string
|
|
values *LicenseValues
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
wantErr assert.ErrorAssertionFunc
|
|
}{
|
|
{
|
|
name: "regular",
|
|
args: args{
|
|
name: "MIT",
|
|
values: &LicenseValues{Owner: "Forge", Year: "2023"},
|
|
},
|
|
want: `MIT License
|
|
|
|
Copyright (c) 2023 Forge
|
|
|
|
Permission is hereby granted`,
|
|
wantErr: assert.NoError,
|
|
},
|
|
{
|
|
name: "license not found",
|
|
args: args{
|
|
name: "notfound",
|
|
},
|
|
wantErr: assert.Error,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := GetLicense(tt.args.name, tt.args.values)
|
|
if !tt.wantErr(t, err, fmt.Sprintf("GetLicense(%v, %v)", tt.args.name, tt.args.values)) {
|
|
return
|
|
}
|
|
assert.Contains(t, string(got), tt.want, "GetLicense(%v, %v)", tt.args.name, tt.args.values)
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_fillLicensePlaceholder(t *testing.T) {
|
|
type args struct {
|
|
name string
|
|
values *LicenseValues
|
|
origin string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
}{
|
|
{
|
|
name: "owner",
|
|
args: args{
|
|
name: "regular",
|
|
values: &LicenseValues{Year: "2023", Owner: "Forge", Email: "[email protected]", Repo: "forge"},
|
|
origin: `
|
|
<name of author>
|
|
<owner>
|
|
[NAME]
|
|
[name of copyright owner]
|
|
[name of copyright holder]
|
|
<COPYRIGHT HOLDERS>
|
|
<copyright holders>
|
|
<AUTHOR>
|
|
<author's name or designee>
|
|
[one or more legally recognised persons or entities offering the Work under the terms and conditions of this Licence]
|
|
`,
|
|
},
|
|
want: `
|
|
Forge
|
|
Forge
|
|
Forge
|
|
Forge
|
|
Forge
|
|
Forge
|
|
Forge
|
|
Forge
|
|
Forge
|
|
Forge
|
|
`,
|
|
},
|
|
{
|
|
name: "email",
|
|
args: args{
|
|
name: "regular",
|
|
values: &LicenseValues{Year: "2023", Owner: "Forge", Email: "[email protected]", Repo: "forge"},
|
|
origin: `
|
|
[EMAIL]
|
|
`,
|
|
},
|
|
want: `
|
|
[email protected]
|
|
`,
|
|
},
|
|
{
|
|
name: "repo",
|
|
args: args{
|
|
name: "regular",
|
|
values: &LicenseValues{Year: "2023", Owner: "Forge", Email: "[email protected]", Repo: "forge"},
|
|
origin: `
|
|
<program>
|
|
<one line to give the program's name and a brief idea of what it does.>
|
|
`,
|
|
},
|
|
want: `
|
|
forge
|
|
forge
|
|
`,
|
|
},
|
|
{
|
|
name: "year",
|
|
args: args{
|
|
name: "regular",
|
|
values: &LicenseValues{Year: "2023", Owner: "Forge", Email: "[email protected]", Repo: "forge"},
|
|
origin: `
|
|
<year>
|
|
[YEAR]
|
|
{YEAR}
|
|
[yyyy]
|
|
[Year]
|
|
[year]
|
|
`,
|
|
},
|
|
want: `
|
|
2023
|
|
2023
|
|
2023
|
|
2023
|
|
2023
|
|
2023
|
|
`,
|
|
},
|
|
{
|
|
name: "0BSD",
|
|
args: args{
|
|
name: "0BSD",
|
|
values: &LicenseValues{Year: "2023", Owner: "Forge", Email: "[email protected]", Repo: "forge"},
|
|
origin: `
|
|
Copyright (C) YEAR by AUTHOR EMAIL
|
|
|
|
...
|
|
|
|
... THE AUTHOR BE LIABLE FOR ...
|
|
`,
|
|
},
|
|
want: `
|
|
Copyright (C) 2023 by Forge [email protected]
|
|
|
|
...
|
|
|
|
... THE AUTHOR BE LIABLE FOR ...
|
|
`,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
assert.Equalf(t, tt.want, string(fillLicensePlaceholder(tt.args.name, tt.args.values, []byte(tt.args.origin))), "fillLicensePlaceholder(%v, %v, %v)", tt.args.name, tt.args.values, tt.args.origin)
|
|
})
|
|
}
|
|
}
|