UNPKG

lincd

Version:

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

55 lines 2.21 kB
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; import { Shape } from '../shapes/Shape.js'; import { objectProperty } from '../shapes/SHACL.js'; import { NamedNode } from '../models.js'; import { describe, expect, test } from '@jest/globals'; import { linkedShape } from '../package.js'; let knows = NamedNode.create(); let person = NamedNode.create(); let Person = Person_1 = class Person extends Shape { get knows() { return this.getAllAs(knows, Person_1); } }; Person.targetClass = person; __decorate([ objectProperty({ path: knows, shape: Person, required: true, }), __metadata("design:type", Object), __metadata("design:paramtypes", []) ], Person.prototype, "knows", null); Person = Person_1 = __decorate([ linkedShape ], Person); let person1 = new Person(); let person2 = new Person(); let person3 = new Person(); let person4 = new Person(); person1.knows.add(person1); describe('SHACL nodeshape validation', () => { test('can validate reference to same node of same type', () => { expect(person1.validate()).toBe(true); }); test('fails when required path is not defined', () => { expect(person2.validate()).toBe(false); }); test('still succeeds with circular references', () => { person3.knows.add(person4); person4.knows.add(person3); expect(person3.validate()).toBe(true); expect(person4.validate()).toBe(true); }); }); //# sourceMappingURL=shacl.test.js.map