UNPKG

lincd

Version:

LINCD is a JavaScript library for building user interfaces with linked data (also known as 'structured data', or RDF)

57 lines 2.46 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var Person_1; Object.defineProperty(exports, "__esModule", { value: true }); const Shape_1 = require("../shapes/Shape"); const ShapeDecorators_1 = require("../utils/ShapeDecorators"); const models_1 = require("../models"); const globals_1 = require("@jest/globals"); const package_1 = require("../package"); let knows = models_1.NamedNode.create(); let person = models_1.NamedNode.create(); let Person = Person_1 = class Person extends Shape_1.Shape { get knows() { return this.getAllAs(knows, Person_1); } }; Person.targetClass = person; __decorate([ (0, ShapeDecorators_1.objectProperty)({ path: knows, shape: Person, required: true }), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], Person.prototype, "knows", null); Person = Person_1 = __decorate([ package_1.linkedShape ], Person); let person1 = new Person(); let person2 = new Person(); let person3 = new Person(); let person4 = new Person(); person1.knows.add(person1); (0, globals_1.describe)('SHACL nodeshape validation', () => { (0, globals_1.test)('can validate reference to same node of same type', () => { (0, globals_1.expect)(person1.validate()).toBe(true); }); (0, globals_1.test)('fails when required path is not defined', () => { (0, globals_1.expect)(person2.validate()).toBe(false); }); (0, globals_1.test)('still succeeds with circular references', () => { person3.knows.add(person4); person4.knows.add(person3); (0, globals_1.expect)(person3.validate()).toBe(true); (0, globals_1.expect)(person4.validate()).toBe(true); }); }); //# sourceMappingURL=shacl.test.js.map