1) Namespace must match the one being covered.
2) the @covers annotation was wrong, missing class name(s). At the
end I've used the coversDefaultClass annotation that allows to
specify a whole namespace, useful in this case to get the 3
existing (course, section, cm) classes covered.
Adapt the current course editing libraries to modify also
the course state data. This way, any UI component that
watches the course structure can react to the changes.
The course index is the first UI component that implements the new
drawers and the reactive components. The course index uses the course
state to present the current course structure and changes whenever
that structure change.