It's very surprising to me that there is a market for this. But then again I have spent almost my entire professional programming career writing matlab. How does one even identify such a market? I am so curious, please share your story.
The extremely condensed story of my company (started ~1995 when I was a tiny child, I joined 2010, though now I am part owner) was a bunch of guys in an advanced research division of Digital, trying to make a visual programming language. After Digital went under they kept trying to do this, but no one wanted the language. People however were interested in the graphic tech used to make the language, so they turned that into a library, in the 1990s, called Go++ (Graph Objects for C++).
Then JGo (Java), GoDiagram (C#, WinForms and now Avalonia), GoXam (XAML/WPF C#), and GoJS.
I began GoJS as a greenfield project starting in 2010-2011 as a new grad by working with these guys who had been thinking about diagrams for years. So it had the advantage of being built from scratch (and using the brand new HTML Canvas surface) but with all the accumulated experience of their wisdom at hand any time there were design questions. In some sense I got really lucky to work on such a "brand new, but charted path" project. Not many new grads get that kind of experience...
When we released GoJS I was unsure if anyone would actually pay for JavaScript library. There weren't too many I could find in the space that weren't free (Sencha was one I found while doing research, and funny enough they tried to recruit me, flew me out to CA after I wrote a book about canvas circa 2013). But the problem space really truly is large, and you can save a year or more of development time by buying such a library, so the calculus is very worth it for many companies. Like so many people, what we sell is time, and having thought hard about these problems for so long, from layouts to really mundane undo/redo transactional stuff.
This is a key component for any good low/no code platform, process builders, workflow builders , process documentation and so on. And that is just one area.
It makes tons of sense to buy/use a library like this rather than build your own (unless that is your business).
We use one from antd. Antiquated and hard to automate testing. We are looking for a more modern solution.
How compatible is GoJS with web testing tools? Most seem to have trouble with canvas.
I would say "fairly annoying", alas! I never bothered to make Selenium etc examples, though I know some customers use it. You can switch to the SVG renderer for testing if you really want to inspect the DOM after doing actions, and some customers do this too. And you can mock events if you want to, we give some basic examples: https://gojs.net/latest/samples/Robot.html
But you have to inspect programmatically one way or another. What is easiest really depends on what, exactly, you want to test. Eg testing your permissions (can a user copy a node with these checkboxes in my app selected) can be done by trying to copy and seeing how many Parts exist before and after, etc.
Can I ask how large your library can scale to? We have digraphs in the range of tens to hundreds of thousands of nodes, and every tool I've tried falls over. The layered digraph example from your site seems to hang forever at 10k, but that could just be how the example widget is set up.
we have some niche performance examples like this (WARNING slightly epileptic) https://gojs.net/extras/10000parts.html, but most of those are for internal testing and not too useful for customers.
They're data-dependence graphs for a neural-network scheduling problem. Like this but way bigger to start with and then lowered to more detailed representations several times: https://netron.app/?url=https://github.com/onnx/models/raw/m... My home-grown layout engine can handle the 12k nodes for llama2 in its highest-level form in 20s or so, but its not the most featureful, and they only get bigger from there. So I always have an eye out for potential tools.
You can make it a business to build and license a JavaScript calendar widget. Many companies would rather buy such a library than have their developers pick something FOSS or develop on their own.