mirror of
				https://github.com/traefik/traefik.git
				synced 2025-11-04 10:21:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package redactor
 | 
						|
 | 
						|
import (
 | 
						|
	"os"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
)
 | 
						|
 | 
						|
func Test_doOnJSON(t *testing.T) {
 | 
						|
	baseConfiguration, err := os.ReadFile("./testdata/example.json")
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	anomConfiguration := doOnJSON(string(baseConfiguration))
 | 
						|
 | 
						|
	expectedConfiguration, err := os.ReadFile("./testdata/expected.json")
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	assert.JSONEq(t, string(expectedConfiguration), anomConfiguration)
 | 
						|
}
 | 
						|
 | 
						|
func Test_doOnJSON_simple(t *testing.T) {
 | 
						|
	testCases := []struct {
 | 
						|
		name           string
 | 
						|
		input          string
 | 
						|
		expectedOutput string
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name: "email",
 | 
						|
			input: `{
 | 
						|
				"email1": "goo@example.com",
 | 
						|
				"email2": "foo.bargoo@example.com",
 | 
						|
				"email3": "foo.bargoo@example.com.us"
 | 
						|
			}`,
 | 
						|
			expectedOutput: `{
 | 
						|
				"email1": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
 | 
						|
				"email2": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
 | 
						|
				"email3": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
 | 
						|
			}`,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name: "url",
 | 
						|
			input: `{
 | 
						|
				"URL": "foo domain.com foo",
 | 
						|
				"URL": "foo sub.domain.com foo",
 | 
						|
				"URL": "foo sub.sub.domain.com foo",
 | 
						|
				"URL": "foo sub.sub.sub.domain.com.us foo",
 | 
						|
				"URL":"https://hub.example.com","foo":"bar"
 | 
						|
			}`,
 | 
						|
			expectedOutput: `{
 | 
						|
				"URL": "foo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx foo",
 | 
						|
				"URL": "foo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx foo",
 | 
						|
				"URL": "foo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx foo",
 | 
						|
				"URL": "foo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx foo",
 | 
						|
				"URL":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","foo":"bar"
 | 
						|
			}`,
 | 
						|
		},
 | 
						|
	}
 | 
						|
 | 
						|
	for _, test := range testCases {
 | 
						|
		t.Run(test.name, func(t *testing.T) {
 | 
						|
			t.Parallel()
 | 
						|
			output := doOnJSON(test.input)
 | 
						|
			assert.Equal(t, test.expectedOutput, output)
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |