diff --git a/packages/jsonld-dataset-proxy/test/ContextUtil.test.ts b/packages/jsonld-dataset-proxy/test/ContextUtil.test.ts
index c1b95a1..5b8bb39 100644
--- a/packages/jsonld-dataset-proxy/test/ContextUtil.test.ts
+++ b/packages/jsonld-dataset-proxy/test/ContextUtil.test.ts
@@ -31,12 +31,12 @@ describe("ContextUtil", () => {
const contextUtil = new ContextUtil(scopedContext);
expect(
contextUtil.keyToIri("element", [
- namedNode("https://example.com/Bender"),
+ namedNode("http://example.com/Bender"),
]),
- ).toBe("https://example.com/element");
+ ).toBe("http://example.com/element");
expect(
- contextUtil.iriToKey("https://example.com/element", [
- namedNode("https://example.com/Bender"),
+ contextUtil.iriToKey("http://example.com/element", [
+ namedNode("http://example.com/Bender"),
]),
).toBe("element");
});
@@ -58,7 +58,7 @@ describe("ContextUtil", () => {
const contextUtil = new ContextUtil(scopedContext);
expect(
contextUtil.isArray("element", [
- namedNode("https://example.com/Avatar"),
+ namedNode("http://example.com/Avatar"),
]),
).toBe(true);
});
diff --git a/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts b/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts
index e60996c..1109449 100644
--- a/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts
+++ b/packages/jsonld-dataset-proxy/test/jsonldDatasetProxy.test.ts
@@ -30,6 +30,12 @@ import { namedNode, quad, literal, defaultGraph } from "@rdfjs/data-model";
import type { Dataset, NamedNode } from "@rdfjs/types";
import type { ContextDefinition } from "jsonld";
import type { LdoJsonldContext } from "../src/LdoJsonldContext";
+import {
+ scopedContext,
+ scopedData,
+ type Avatar,
+ type Bender,
+} from "./scopedExampleData";
const testJsonldDatasetProxy = (patientContext: LdoJsonldContext) => () => {
async function getLoadedDataset(): Promise<
@@ -165,6 +171,19 @@ const testJsonldDatasetProxy = (patientContext: LdoJsonldContext) => () => {
];
}
+ async function getScopedDataset(): Promise<
+ [Dataset, Bender, Avatar, JsonldDatasetProxyBuilder]
+ > {
+ const dataset = await serializedToDataset(scopedData);
+ const builder = await jsonldDatasetProxy(dataset, scopedContext);
+ return [
+ dataset,
+ builder.fromSubject(namedNode("http://example.com/Katara")),
+ builder.fromSubject(namedNode("http://example.com/Aang")),
+ builder,
+ ];
+ }
+
describe("read", () => {
it("retreives a primitive", async () => {
const [, observation] = await getLoadedDataset();
@@ -409,6 +428,13 @@ const testJsonldDatasetProxy = (patientContext: LdoJsonldContext) => () => {
const [, observation] = await getLoadedDataset();
expect(observation["@context"]).toEqual(patientContext);
});
+
+ it("reads an array for collections, but a var for non collections", async () => {
+ const [, bender, avatar] = await getScopedDataset();
+ expect(avatar.element[0]["@id"]).toBe("http://example.com/Air");
+ expect(avatar.element[1]["@id"]).toBe("http://example.com/Water");
+ expect(bender.element["@id"]).toBe("http://example.com/Water");
+ });
});
describe("write", () => {
diff --git a/packages/jsonld-dataset-proxy/test/scopedExampleData.ts b/packages/jsonld-dataset-proxy/test/scopedExampleData.ts
index 4ef8ada..912d36a 100644
--- a/packages/jsonld-dataset-proxy/test/scopedExampleData.ts
+++ b/packages/jsonld-dataset-proxy/test/scopedExampleData.ts
@@ -43,53 +43,53 @@ export type Element =
export const scopedContext: LdoJsonldContext = {
Bender: {
- "@id": "https://example.com/Bender",
+ "@id": "http://example.com/Bender",
"@context": {
type: {
"@id": "@type",
},
name: {
- "@id": "https://example.com/name",
+ "@id": "http://example.com/name",
},
element: {
- "@id": "https://example.com/element",
+ "@id": "http://example.com/element",
},
friend: {
- "@id": "https://example.com/friend",
+ "@id": "http://example.com/friend",
"@isCollection": true,
},
},
},
Avatar: {
- "@id": "https://example.com/Avatar",
+ "@id": "http://example.com/Avatar",
"@context": {
type: {
"@id": "@type",
},
name: {
- "@id": "https://example.com/name",
+ "@id": "http://example.com/name",
},
element: {
- "@id": "https://example.com/element",
+ "@id": "http://example.com/element",
"@isCollection": true,
},
friend: {
- "@id": "https://example.com/friend",
+ "@id": "http://example.com/friend",
"@isCollection": true,
},
},
},
NonBender: {
- "@id": "https://example.com/NonBender",
+ "@id": "http://example.com/NonBender",
"@context": {
type: {
"@id": "@type",
},
name: {
- "@id": "https://example.com/name",
+ "@id": "http://example.com/name",
},
friend: {
- "@id": "https://example.com/friend",
+ "@id": "http://example.com/friend",
"@isCollection": true,
},
},
@@ -97,7 +97,7 @@ export const scopedContext: LdoJsonldContext = {
};
export const scopedData = `
-@prefix example: .
+@prefix example: .
@prefix fhir: .
@prefix xsd: .
@prefix rdf: .