mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-02 20:06:06 +01:00 
			
		
		
		
	- The `NoBetterThan` function can only handle comparisons between "pending," "success," "error," and "failure." For any other comparison, we directly return false. This prevents logic errors like the one in #26121. - The callers of the `NoBetterThan` function should also avoid making incomparable calls. --------- Co-authored-by: yp05327 <576951401@qq.com> Co-authored-by: puni9869 <80308335+puni9869@users.noreply.github.com>
		
			
				
	
	
		
			175 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2023 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package structs
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestNoBetterThan(t *testing.T) {
 | 
						|
	type args struct {
 | 
						|
		css  CommitStatusState
 | 
						|
		css2 CommitStatusState
 | 
						|
	}
 | 
						|
	var unExpectedState CommitStatusState
 | 
						|
	tests := []struct {
 | 
						|
		name string
 | 
						|
		args args
 | 
						|
		want bool
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name: "success is no better than success",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusSuccess,
 | 
						|
				css2: CommitStatusSuccess,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "success is no better than pending",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusSuccess,
 | 
						|
				css2: CommitStatusPending,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "success is no better than failure",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusSuccess,
 | 
						|
				css2: CommitStatusFailure,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "success is no better than error",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusSuccess,
 | 
						|
				css2: CommitStatusError,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "pending is no better than success",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusPending,
 | 
						|
				css2: CommitStatusSuccess,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "pending is no better than pending",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusPending,
 | 
						|
				css2: CommitStatusPending,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "pending is no better than failure",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusPending,
 | 
						|
				css2: CommitStatusFailure,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "pending is no better than error",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusPending,
 | 
						|
				css2: CommitStatusError,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "failure is no better than success",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusFailure,
 | 
						|
				css2: CommitStatusSuccess,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "failure is no better than pending",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusFailure,
 | 
						|
				css2: CommitStatusPending,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "failure is no better than failure",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusFailure,
 | 
						|
				css2: CommitStatusFailure,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "failure is no better than error",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusFailure,
 | 
						|
				css2: CommitStatusError,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "error is no better than success",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusError,
 | 
						|
				css2: CommitStatusSuccess,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "error is no better than pending",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusError,
 | 
						|
				css2: CommitStatusPending,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "error is no better than failure",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusError,
 | 
						|
				css2: CommitStatusFailure,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "error is no better than error",
 | 
						|
			args: args{
 | 
						|
				css:  CommitStatusError,
 | 
						|
				css2: CommitStatusError,
 | 
						|
			},
 | 
						|
			want: true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "unExpectedState is no better than success",
 | 
						|
			args: args{
 | 
						|
				css:  unExpectedState,
 | 
						|
				css2: CommitStatusSuccess,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "unExpectedState is no better than unExpectedState",
 | 
						|
			args: args{
 | 
						|
				css:  unExpectedState,
 | 
						|
				css2: unExpectedState,
 | 
						|
			},
 | 
						|
			want: false,
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			result := tt.args.css.NoBetterThan(tt.args.css2)
 | 
						|
			if result != tt.want {
 | 
						|
				t.Errorf("NoBetterThan() = %v, want %v", result, tt.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |