In karma 6, files matched by earlier patterns aren't overridden by later
patterns. The sourceFiles patterns like `cms/**/!(*spec|djangojs).js`
matched test entry files (e.g., `cms/js/spec/main.js`) because they
don't end with "spec" or "djangojs". This prevented runFiles from
setting `included: true` on these files, so tests never started.
Split the sourceFiles patterns to precisely exclude spec/main*.js test
entry points while still serving other source files:
- Direct children of the js directory
- Subdirectories except spec/
- spec/ subdirectory, excluding main* files
This allows runFiles to control test entry point inclusion.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This basically commits the transpiled CoffeeScript JS (with minor
cleanup) and removes coffee build support.
A tiny amount of support for xblocks exists, because external users
may have xblocks with coffee. But no coffee in our tree anyway.
Fix syntax error in selectors
.attr() now returns a string (though it can still be passed an integer)
Fixes checkbox test failures
Remove remaining references to jquery.min (in wrong folder)
$.ajax now returns 422 if type is json and body is not JSON, e.g. ''
Substitute prop for attr
Remove references to jquery.min, add jquery.migrate (again)
"Fix" jquery karma config
This wasn't suppoed to survive the merge
This throws an error when called with an 'undefined' error
Fix Karma warning about [re|un]loading the window
Fix path for jquery in cms-squire tests
Move jasmine.clock.uninstall() to afterEach so it runs even on failure
Fix test failing due to timezone issues
Do the timeout before the window scrolling (so handler will not be _.throttled)
Fix an alert() triggered by window.onBeforeUnload while testing in Chrome
Files which are loaded via RequireJs do not need to be individually
declared in karma config files. If we give karma directories,
it will serve all the files in them.