From 8b1a9dbc45ca5adaa1109f523224700dbed7f2c6 Mon Sep 17 00:00:00 2001 From: Adam Leclerc Date: Thu, 30 Jan 2025 15:06:18 -0400 Subject: [PATCH] ! F Logging Approved Files --- approval_name.go | 2 + approved_file_log.go | 61 +++++++++++++++++++ ...bber_test.TestSupportedFormats.approved.md | 19 ------ ...NotAcceptSeveralVerifyOptions.approved.txt | 1 - 4 files changed, 63 insertions(+), 20 deletions(-) create mode 100644 approved_file_log.go delete mode 100644 testdata/date_scrubber_test.TestSupportedFormats.approved.md delete mode 100644 testdata/scrubber_test.TestVerifyDoesNotAcceptSeveralVerifyOptions.approved.txt diff --git a/approval_name.go b/approval_name.go index dc5fbe7..e201f78 100644 --- a/approval_name.go +++ b/approval_name.go @@ -81,6 +81,8 @@ func isTestRunner(f *runtime.Frame) bool { func (s *ApprovalName) compare(approvalFile, receivedFile string, reader io.Reader) error { + GetApprovedFileLoggerInstance().Log(approvalFile) + received, err := io.ReadAll(reader) if err != nil { return err diff --git a/approved_file_log.go b/approved_file_log.go new file mode 100644 index 0000000..f4025f0 --- /dev/null +++ b/approved_file_log.go @@ -0,0 +1,61 @@ +package approvals + +import ( + "fmt" + "os" + "path/filepath" + + "sync" + + "github.com/approvals/go-approval-tests/utils" +) + +var ( + once sync.Once + instance *approvedFileLog +) + +type approvedFileLog struct { + filename string +} + +const approvalTempdirectory = ".approval_tests_temp" + +func GetApprovedFileLoggerInstance() *approvedFileLog { + + once.Do(func() { + instance = &approvedFileLog{ + filename: approvalTempdirectory + "/.approved_files.log", + } + instance.initializeFile() + }) + + return instance +} + +func (l approvedFileLog) initializeFile() { + + // create the file and setup the parent directory if needed + err := os.MkdirAll(approvalTempdirectory, os.ModePerm) + if err != nil { + fmt.Println("Error creating directory: ", err) + return + } + + // create the file and make it executable in one step + file, err := os.OpenFile(l.filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755) + if err != nil { + fmt.Println("Error creating file: ", err) + return + } + + file.Close() + +} + +func (l approvedFileLog) Log(approvedFile string) { + // get the absolute path of approvedFile + approvedFile, _ = filepath.Abs(approvedFile) + + utils.AppendToFile(l.filename, approvedFile+"\n") +} diff --git a/testdata/date_scrubber_test.TestSupportedFormats.approved.md b/testdata/date_scrubber_test.TestSupportedFormats.approved.md deleted file mode 100644 index eeb4b71..0000000 --- a/testdata/date_scrubber_test.TestSupportedFormats.approved.md +++ /dev/null @@ -1,19 +0,0 @@ -| Example Date | RegEx Pattern | -| :-------------------- | :----------------------- | -| Tue May 13 16:30:00 | [a-zA-Z]{3} [a-zA-Z]{3} \d{2} \d{2}:\d{2}:\d{2} | -| Wed Nov 17 22:28:33 EET 2021 | [a-zA-Z]{3} [a-zA-Z]{3} \d{2} \d{2}:\d{2}:\d{2} [a-zA-Z]{3,4} \d{4} | -| Wed, 21 Oct 2015 07:28:00 GMT | (Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun), \d{2} (Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT | -| Tue May 13 2014 23:30:00.789 | [a-zA-Z]{3} [a-zA-Z]{3} \d{2} \d{4} \d{2}:\d{2}:\d{2}.\d{3} | -| Tue May 13 16:30:00 -0800 2014 | [a-zA-Z]{3} [a-zA-Z]{3} \d{2} \d{2}:\d{2}:\d{2} -\d{4} \d{4} | -| 13 May 2014 23:50:49,999 | \d{2} [a-zA-Z]{3} \d{4} \d{2}:\d{2}:\d{2},\d{3} | -| Oct 13 15:29 | [A-Za-z]{3} \d{2} \d{2}:\d{2} | -| May 13, 2014 11:30:00 PM PST | [a-zA-Z]{3} \d{2}, \d{4} \d{2}:\d{2}:\d{2} [a-zA-Z]{2} [a-zA-Z]{3} | -| 23:30:00 | \d{2}:\d{2}:\d{2} | -| 2014/05/13 16:30:59.786 | \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}(\.\d{3})? | -| 2020-9-10T08:07Z | \d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{2}Z | -| 2020-09-10T08:07:89Z | \d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{2}:\d{2}Z | -| 2020-09-10T01:23:45.678Z | \d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{2}\:\d{2}\.\d{3}Z | -| 20210505T091112Z | \d{8}T\d{6}Z | -| 2024-12-17 | \d{4}-\d{2}-\d{2} | -| 2024-12-18T14:04:46.746130Z | \d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{2}:\d{2}(\.\d{1,9})?Z | -| 13/05/2014 23:50:49 | \d{2}[-/.]\d{2}[-/.]\d{4}\s\d{2}:\d{2}(:\d{2})?( (?:pm\|am\|PM\|AM))? | diff --git a/testdata/scrubber_test.TestVerifyDoesNotAcceptSeveralVerifyOptions.approved.txt b/testdata/scrubber_test.TestVerifyDoesNotAcceptSeveralVerifyOptions.approved.txt deleted file mode 100644 index 5e1c309..0000000 --- a/testdata/scrubber_test.TestVerifyDoesNotAcceptSeveralVerifyOptions.approved.txt +++ /dev/null @@ -1 +0,0 @@ -Hello World \ No newline at end of file