Functional Weave
Code in Python

monitor.maintenance-window@1.0.0

vectors.json

2,581 bytes · view raw

[
  {"name": "no windows, nothing active", "args": [[], 1000], "expect": null},
  {"name": "inside the only window", "args": [[{"name": "db upgrade", "start": 1000, "end": 4600}], 2000], "expect": {"name": "db upgrade", "start": 1000, "end": 4600}},
  {"name": "the start second is inside", "args": [[{"name": "db upgrade", "start": 1000, "end": 4600}], 1000], "expect": {"name": "db upgrade", "start": 1000, "end": 4600}},
  {"name": "the end second is outside", "args": [[{"name": "db upgrade", "start": 1000, "end": 4600}], 4600], "expect": null},
  {"name": "the last second before the end is inside", "args": [[{"name": "db upgrade", "start": 1000, "end": 4600}], 4599], "expect": {"name": "db upgrade", "start": 1000, "end": 4600}},
  {"name": "before the window starts", "args": [[{"name": "db upgrade", "start": 1000, "end": 4600}], 999], "expect": null},
  {"name": "back-to-back windows: at the boundary only the later one applies", "args": [[{"name": "first", "start": 0, "end": 3600}, {"name": "second", "start": 3600, "end": 7200}], 3600], "expect": {"name": "second", "start": 3600, "end": 7200}},
  {"name": "overlapping: the one that started first wins even when listed second", "args": [[{"name": "cdn", "start": 2000, "end": 5000}, {"name": "network", "start": 1000, "end": 9000}], 3000], "expect": {"name": "network", "start": 1000, "end": 9000}},
  {"name": "same start: the first in the list wins", "args": [[{"name": "a", "start": 1000, "end": 2000}, {"name": "b", "start": 1000, "end": 5000}], 1500], "expect": {"name": "a", "start": 1000, "end": 2000}},
  {"name": "only the window containing the moment counts, not the earliest one", "args": [[{"name": "past", "start": 0, "end": 100}, {"name": "now", "start": 500, "end": 900}], 600], "expect": {"name": "now", "start": 500, "end": 900}},
  {"name": "times before 1970 work", "args": [[{"name": "old", "start": -7200, "end": -3600}], -5000], "expect": {"name": "old", "start": -7200, "end": -3600}},
  {"name": "a window that ends when it starts is an error", "args": [[{"name": "empty", "start": 1000, "end": 1000}], 50], "expectError": "maintenance window \"empty\" must end after it starts: start 1000, end 1000"},
  {"name": "a backwards window is an error even when not active", "args": [[{"name": "ok", "start": 0, "end": 100}, {"name": "typo", "start": 9000, "end": 8000}], 50], "expectError": "maintenance window \"typo\" must end after it starts: start 9000, end 8000"},
  {"name": "a fractional moment is an error", "args": [[], 1.5], "expectError": "at must be a whole second, received 1.5"}
]