feat(datasync): add ScheduleDefaults to PipelinesRoot

Add ScheduleDefaults? parameter to PipelinesRoot record and
EffectiveScheduleDefaults computed property that returns
defaults when null.

Updates all existing test usages to include the new parameter.
This commit is contained in:
Joseph Doherty
2026-01-07 00:33:18 -05:00
parent 1318dce18a
commit 15cfc1a010
3 changed files with 105 additions and 0 deletions
@@ -132,6 +132,7 @@ public class EtlPipelineFactoryTests
// Arrange - config with only mass mode
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -201,6 +202,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -227,6 +229,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -261,6 +264,7 @@ public class EtlPipelineFactoryTests
// Arrange - no destination override
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -308,6 +312,7 @@ public class EtlPipelineFactoryTests
// Arrange - mass mode with bulkMerge override
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -340,6 +345,7 @@ public class EtlPipelineFactoryTests
// Arrange - bulkMerge needs matchColumns
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -374,6 +380,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -409,6 +416,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -444,6 +452,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -479,6 +488,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -517,6 +527,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -548,6 +559,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -579,6 +591,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -610,6 +623,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -648,6 +662,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -683,6 +698,7 @@ public class EtlPipelineFactoryTests
// Arrange - null settings should use defaults
var config = new PipelinesRoot(
null, // Null settings
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -718,6 +734,7 @@ public class EtlPipelineFactoryTests
// Arrange
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -748,6 +765,7 @@ public class EtlPipelineFactoryTests
// Arrange - null offset should be valid (no date filtering)
var config = new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(
@@ -781,6 +799,7 @@ public class EtlPipelineFactoryTests
{
return new PipelinesRoot(
new PipelineSettings("UTC"),
null,
new Dictionary<string, PipelineConfig>
{
["TestTable"] = new PipelineConfig(