diff --git a/packages/solid-react/package.json b/packages/solid-react/package.json index b264a2c..86d0b69 100644 --- a/packages/solid-react/package.json +++ b/packages/solid-react/package.json @@ -18,13 +18,10 @@ "build": "rimraf dist && npm run build:cjs && npm run build:esm", "build:cjs": "tsc --project tsconfig.cjs.json", "build:esm": "tsc --project tsconfig.esm.json", - "test": "npm run test:integration", + "test": "vitest run --coverage", "prepublishOnly": "npm run test && npm run build", "build:ldo": "ldo build --input src/shapes --output src/ldo", - "lint": "eslint src/** --fix --no-error-on-unmatched-pattern", - "test:integration": "start-server-and-test start-test-server http://localhost:3002 start-integration-test", - "start-test-server": "ts-node ./test-server/runServer.ts", - "start-integration-test": "vitest run --coverage --sequence.concurrent" + "lint": "eslint src/** --fix --no-error-on-unmatched-pattern" }, "repository": { "type": "git", @@ -43,8 +40,6 @@ "@rdfjs/types": "^1.0.1", "@testing-library/react": "^14.1.2", "start-server-and-test": "^2.0.3", - "ts-node": "^10.9.2", - "tsx": "^4.19.4", "whatwg-fetch": "^3.6.20" }, "dependencies": { @@ -63,4 +58,4 @@ "access": "public" }, "gitHead": "0287cd6371f06630763568dec5e41653f7b8583e" -} +} \ No newline at end of file diff --git a/packages/solid-react/test-server/runServer.ts b/packages/solid-react/test-server/runServer.ts deleted file mode 100644 index bfc7753..0000000 --- a/packages/solid-react/test-server/runServer.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { createApp } from "./solidServer.helper.js"; - -async function run() { - const app = await createApp(); - await app.start(); -} -run(); diff --git a/packages/solid-react/test-server/solidServer.helper.ts b/packages/solid-react/test-server/solidServer.helper.ts deleted file mode 100644 index 4838199..0000000 --- a/packages/solid-react/test-server/solidServer.helper.ts +++ /dev/null @@ -1,44 +0,0 @@ -// Taken from https://github.com/comunica/comunica/blob/b237be4265c353a62a876187d9e21e3bc05123a3/engines/query-sparql/test/QuerySparql-solid-test.ts#L9 - -import * as path from "path"; -import type { App } from "@solid/community-server"; -import { AppRunner, resolveModulePath } from "@solid/community-server"; -import { fileURLToPath } from "url"; -import { dirname } from "path"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -export async function createApp(): Promise { - if (process.env.SERVER) { - return { - start: () => {}, - stop: () => {}, - } as App; - } - const appRunner = new AppRunner(); - - return appRunner.create({ - loaderProperties: { - mainModulePath: resolveModulePath(""), - typeChecking: false, - }, - config: path.join( - __dirname, - "configs", - "components-config", - "unauthenticatedServer.json", - ), - variableBindings: {}, - shorthand: { - port: 3_002, - loggingLevel: "off", - seedConfig: path.join(__dirname, "configs", "solid-css-seed.json"), - }, - }); -} - -export interface ISecretData { - id: string; - secret: string; -} diff --git a/packages/solid-react/test/Solid-Integration.test.tsx b/packages/solid-react/test/Solid-Integration.test.tsx index 1771e63..77085a8 100644 --- a/packages/solid-react/test/Solid-Integration.test.tsx +++ b/packages/solid-react/test/Solid-Integration.test.tsx @@ -1,15 +1,22 @@ import React, { useCallback, useEffect, useState } from "react"; import type { FunctionComponent } from "react"; -import { render, screen, fireEvent, act } from "@testing-library/react"; import { + render, + screen, + fireEvent, + act, + cleanup, +} from "@testing-library/react"; +import { + fileData, MAIN_PROFILE_SUBJECT, MAIN_PROFILE_URI, SAMPLE_BINARY_URI, SAMPLE_DATA_URI, SERVER_DOMAIN, - setUpServer, + setUpServerFiles, THIRD_PROFILE_SUBJECT, -} from "./setUpServer.js"; +} from "./fileData.js"; import { UnauthenticatedSolidLdoProvider } from "../src/UnauthenticatedSolidLdoProvider.js"; import { dataset, @@ -28,16 +35,32 @@ import { SolidProfileShapeShapeType } from "./.ldo/solidProfile.shapeTypes.js"; import { changeData, commitData } from "@ldo/connected"; import type { SolidProfileShape } from "./.ldo/solidProfile.typings.js"; import { describe, vi, afterEach, expect, it } from "vitest"; +import { setupServer } from "@ldo/test-solid-server"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; -// Use an increased timeout, since the CSS server takes too much setup time. -vi.setConfig({ testTimeout: 40_000 }); +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +const __dirname = dirname(fileURLToPath(import.meta.url)); describe("Integration Tests", () => { - setUpServer(); + setupServer( + 3002, + fileData, + join( + __dirname, + "configs", + "components-config", + "unauthenticatedServer.json", + ), + true, + ); + setUpServerFiles(); afterEach(() => { dataset.forgetAllResources(); dataset.deleteMatches(undefined, undefined, undefined, undefined); + cleanup(); }); /** diff --git a/packages/solid-react/test-server/configs/components-config/unauthenticatedServer.json b/packages/solid-react/test/configs/components-config/unauthenticatedServer.json similarity index 97% rename from packages/solid-react/test-server/configs/components-config/unauthenticatedServer.json rename to packages/solid-react/test/configs/components-config/unauthenticatedServer.json index 59839fb..8816739 100644 --- a/packages/solid-react/test-server/configs/components-config/unauthenticatedServer.json +++ b/packages/solid-react/test/configs/components-config/unauthenticatedServer.json @@ -45,7 +45,7 @@ }, "overrideParameters": { "@type": "StaticFolderGenerator", - "templateFolder": "./test-server/configs/template" + "templateFolder": "./test/configs/template" } } ] diff --git a/packages/solid-react/test-server/configs/solid-css-seed.json b/packages/solid-react/test/configs/solid-css-seed.json similarity index 100% rename from packages/solid-react/test-server/configs/solid-css-seed.json rename to packages/solid-react/test/configs/solid-css-seed.json diff --git a/packages/solid-react/test-server/configs/template/wac/.acl.hbs b/packages/solid-react/test/configs/template/wac/.acl.hbs similarity index 100% rename from packages/solid-react/test-server/configs/template/wac/.acl.hbs rename to packages/solid-react/test/configs/template/wac/.acl.hbs diff --git a/packages/solid-react/test-server/configs/template/wac/link-query/main-profile.ttl b/packages/solid-react/test/configs/template/wac/link-query/main-profile.ttl similarity index 100% rename from packages/solid-react/test-server/configs/template/wac/link-query/main-profile.ttl rename to packages/solid-react/test/configs/template/wac/link-query/main-profile.ttl diff --git a/packages/solid-react/test-server/configs/template/wac/link-query/other-profile.ttl b/packages/solid-react/test/configs/template/wac/link-query/other-profile.ttl similarity index 100% rename from packages/solid-react/test-server/configs/template/wac/link-query/other-profile.ttl rename to packages/solid-react/test/configs/template/wac/link-query/other-profile.ttl diff --git a/packages/solid-react/test-server/configs/template/wac/link-query/third-profile.ttl b/packages/solid-react/test/configs/template/wac/link-query/third-profile.ttl similarity index 100% rename from packages/solid-react/test-server/configs/template/wac/link-query/third-profile.ttl rename to packages/solid-react/test/configs/template/wac/link-query/third-profile.ttl diff --git a/packages/solid-react/test-server/configs/template/wac/profile/card.acl.hbs b/packages/solid-react/test/configs/template/wac/profile/card.acl.hbs similarity index 100% rename from packages/solid-react/test-server/configs/template/wac/profile/card.acl.hbs rename to packages/solid-react/test/configs/template/wac/profile/card.acl.hbs diff --git a/packages/solid-react/test/setUpServer.ts b/packages/solid-react/test/fileData.ts similarity index 84% rename from packages/solid-react/test/setUpServer.ts rename to packages/solid-react/test/fileData.ts index 64292a4..97dfffd 100644 --- a/packages/solid-react/test/setUpServer.ts +++ b/packages/solid-react/test/fileData.ts @@ -1,4 +1,5 @@ import type { SolidContainerUri, SolidLeafUri } from "@ldo/connected-solid"; +import type { ResourceInfo } from "@ldo/test-solid-server"; import fetch from "cross-fetch"; import type { MockedFunction } from "vitest"; import { beforeAll, beforeEach, afterEach, vi } from "vitest"; @@ -74,7 +75,46 @@ export interface SetUpServerReturn { >; } -export function setUpServer(): SetUpServerReturn { +export const fileData: ResourceInfo = { + slug: TEST_CONTAINER_SLUG, + isContainer: true, + contains: [ + { + slug: "sample.ttl", + isContainer: false, + mimeType: "text/turtle", + data: EXAMPLE_POST_TTL, + }, + { + slug: "sample.txt", + isContainer: false, + mimeType: "text/plain", + data: `some text.`, + }, + { + slug: "sample2.ttl", + isContainer: false, + mimeType: "text/turtle", + shouldNotInit: true, + data: "", + }, + { + slug: "sample2.txt", + isContainer: false, + mimeType: "text/plain", + shouldNotInit: true, + data: "", + }, + { + slug: "sampleContainer/", + isContainer: true, + shouldNotInit: true, + contains: [], + }, + ], +}; + +export function setUpServerFiles(): SetUpServerReturn { // Ignore to build s // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore diff --git a/packages/test-solid-server/src/setupTestServer.ts b/packages/test-solid-server/src/setupTestServer.ts index cd699e3..60ab9c8 100644 --- a/packages/test-solid-server/src/setupTestServer.ts +++ b/packages/test-solid-server/src/setupTestServer.ts @@ -22,6 +22,7 @@ export function setupServer( port: number, resourceInfo: ResourceInfo, customConfigPath?: string, + skipAuthentication?: boolean, ) { const data: { app: App; @@ -45,7 +46,7 @@ export function setupServer( // Start up the server data.app = await createApp(port, customConfigPath); await data.app.start(); - data.authFetch = await generateAuthFetch(port); + data.authFetch = skipAuthentication ? fetch : await generateAuthFetch(port); }); afterAll(async () => {