diff --git a/file.go b/file.go index d1143f6e1..528eaafb6 100644 --- a/file.go +++ b/file.go @@ -1271,6 +1271,7 @@ func (f *File) addFileHeaderData(file *File) *File { file.Header.ImmediateDestination = f.Header.ImmediateDestination file.Header.FileCreationDate = time.Now().Format("060102") file.Header.FileCreationTime = time.Now().AddDate(0, 0, 1).Format("1504") // HHmm + file.Header.FileIDModifier = f.Header.FileIDModifier file.Header.ImmediateDestinationName = f.Header.ImmediateDestinationName file.Header.ImmediateOriginName = f.Header.ImmediateOriginName return file diff --git a/file_test.go b/file_test.go index 035a447b3..9518c3b65 100644 --- a/file_test.go +++ b/file_test.go @@ -2219,3 +2219,25 @@ func TestFileFromJSON_ValidateOpts(t *testing.T) { require.NotNil(t, validateOpts) require.True(t, validateOpts.PreserveSpaces) } + +func TestFile_FlattenBatches_PreservesFileIDModifier(t *testing.T) { + f := NewFile() + f.SetHeader(mockFileHeader()) + f.Header.FileIDModifier = "B" + batch1 := mockBatchPPD(t) + f.AddBatch(batch1) + + err := f.Create() + if err != nil { + t.Fatal(err) + } + + flattened, err := f.FlattenBatches() + if err != nil { + t.Fatal(err) + } + + if flattened.Header.FileIDModifier != "B" { + t.Errorf("FileIDModifier not preserved: want 'B' got %s", flattened.Header.FileIDModifier) + } +}