From c795e19663a93c24908a7318975f820bac63164f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 3 Aug 2022 15:08:36 +0200 Subject: Automatically rebuild native modules on ABI change --- server/tests/api/server/plugins.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'server/tests/api') diff --git a/server/tests/api/server/plugins.ts b/server/tests/api/server/plugins.ts index 8aa34fb15..3ae99dc2e 100644 --- a/server/tests/api/server/plugins.ts +++ b/server/tests/api/server/plugins.ts @@ -2,6 +2,8 @@ import 'mocha' import * as chai from 'chai' +import { pathExists, remove } from 'fs-extra' +import { join } from 'path' import { testHelloWorldRegisteredSettings } from '@server/tests/shared' import { wait } from '@shared/core-utils' import { HttpStatusCode, PluginType } from '@shared/models' @@ -9,6 +11,7 @@ import { cleanupTests, createSingleServer, killallServers, + makeGetRequest, PeerTubeServer, PluginsCommand, setAccessTokensToServers @@ -349,6 +352,35 @@ describe('Test plugins', function () { await check() }) + it('Should rebuild native modules on Node ABI change', async function () { + await command.install({ path: PluginsCommand.getPluginTestPath('-native') }) + + await makeGetRequest({ + url: server.url, + path: '/plugins/test-native/router', + expectedStatus: HttpStatusCode.NO_CONTENT_204 + }) + + const query = `UPDATE "application" SET "nodeABIVersion" = 1` + await server.sql.updateQuery(query) + + const baseNativeModule = server.servers.buildDirectory(join('plugins', 'node_modules', 'a-native-example')) + await remove(join(baseNativeModule, 'build')) + await remove(join(baseNativeModule, 'prebuilds')) + + await server.kill() + await server.run() + + await pathExists(join(baseNativeModule, 'build')) + await pathExists(join(baseNativeModule, 'prebuilds')) + + await makeGetRequest({ + url: server.url, + path: '/plugins/test-native/router', + expectedStatus: HttpStatusCode.NO_CONTENT_204 + }) + }) + after(async function () { await cleanupTests([ server ]) }) -- cgit v1.2.3