#!/bin/sh
# Upstream ships no test suite for this package, so this checks that the
# installed library loads and behaves as the package promises.
set -eu

work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT INT TERM
cd "$work"

mkdir -p node_modules/@prosemirror
for dir in /usr/share/nodejs/*; do
	[ -d "$dir" ] || continue
	name=$(basename "$dir")
	[ "$name" = "@prosemirror" ] && continue
	ln -sfn "$dir" "node_modules/$name"
done
for dir in /usr/share/nodejs/@prosemirror/*; do
	ln -sfn "$dir" "node_modules/@prosemirror/$(basename "$dir")"
done

cat > check.mjs <<'EOF'
import {schema} from "prosemirror-schema-basic"
import {Schema} from "prosemirror-model"

if (!(schema instanceof Schema)) {
  throw new Error("schema is not a Schema instance")
}
for (const name of ["doc", "paragraph", "text", "heading", "blockquote", "code_block", "hard_break", "image"]) {
  if (!schema.nodes[name]) throw new Error(`node type ${name} is missing`)
}
if (!schema.marks.em || !schema.marks.strong) {
  throw new Error("inline marks are missing")
}
console.log("prosemirror-schema-basic loaded")
EOF

node check.mjs
