We have a system that allows our customers to co-ordinate people (buyers) to deliver food within 45 minutes of order creation.
Each customer has a number of stores in which the orders are processed by the buyers
and each buyer has a schedule that indicates in which business and at what times he / she will work.
However, we also have a feature that only allows them to create orders when the store is already configured in our systems and when there are enough buyers at the expected time.
As you can see, checking whether a particular order is accepted in our system depends on the current time, shop configuration, and buyer's schedule.
We managed our source code pretty well, we do code reviews, unit tests, and integration tests. However, we have not found a satisfactory way to manage the configurations of the stores and the schedules and these are as sensitive as the source code If there is an incorrect configuration, it is almost as if the client had a bug in our source code because we do not allow them to create jobs, and revenue goes down.
Therefore, we would like to find a way to manage the configuration of the stores and the schedules with a similar discipline as we do with our source code. We want to test if the configuration is correct. At the moment we do this configuration via SQL scripts, which are testable inputs may not be accurate and we have no way to manage it or test its correctness.
Did you have a similar problem? Do you know any tools, languages, or processes that prevent us from making mistakes in client configuration and have a central way of knowing the current configuration, other than displaying database tables?
By the way, we get these configurations as tables of business people talking to the customer.