open-amt-cloud-toolkit / sample-web-ui

The Sample WebUI provides an example of how the UI Toolkit can be implemented to leverage the OpenAMT Cloud Toolkit
https://open-amt-cloud-toolkit.github.io/docs/
Apache License 2.0
7 stars 10 forks source link

Tests fail if RPS server isn't localhost #808

Open orinem opened 2 years ago

orinem commented 2 years ago

To Reproduce 🪜 Steps to reproduce the behavior:

Change the environment to use a remote RPS server, for example:

diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index 63d436c..7904a38 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -9,9 +9,9 @@

 export const environment = {
   production: false,
-  mpsServer: 'http://localhost:3000',
-  rpsServer: 'http://localhost:8081',
-  vault: 'http://localhost/vault'
+  mpsServer: 'https://10.0.0.219/mps',
+  rpsServer: 'https://10.0.0.219/rps',
+  vault: 'https://10.0.0.219/vault'
 }

 /*

The tests will fail as they have 'localhost' hardcoded in some strings.

Expected behavior

Tests should succeed.

Additional context

This will fix the problem. Using 'URL' to extract the hostname should be different enough to component.formServerUrl() for the test to be worthwhile.

diff --git a/src/app/shared/deactivate-device/deactivate-device.component.spec.ts b/src/app/shared/deactivate-device/deactivate-device.component.spec.ts
index babe200..cbd8909 100644
--- a/src/app/shared/deactivate-device/deactivate-device.component.spec.ts
+++ b/src/app/shared/deactivate-device/deactivate-device.component.spec.ts
@@ -51,7 +51,7 @@ describe('DeactivateDeviceComponent', () => {
     expect(component.rpcLinux).toBe('sudo ./rpc ')
     expect(component.rpcDocker).toBe('sudo docker run --device=/dev/mei0 rpc:latest ')
     expect(component.rpcWindows).toBe('rpc.exe ')
-    expect(component.deactivationUrl).toBe('sudo ./rpc -u wss://localhost/activate ')
+    expect(component.deactivationUrl).toBe('sudo ./rpc -u wss://' + new URL(environment.rpsServer).hostname + '/activate ')
     expect(component.serverUrl).toBe(`-u wss://${component.formServerUrl()}/activate `)
     expect(component.deactivationCommand).toBe('')
     expect(component.isCopied).toBe(false)
@@ -75,17 +75,17 @@ describe('DeactivateDeviceComponent', () => {
   it('should set linux deactivation url', () => {
     component.selectedPlatform = 'Linux'
     component.formDeactivationUrl()
-    expect(component.deactivationUrl).toBe('sudo ./rpc -u wss://localhost/activate ')
+    expect(component.deactivationUrl).toBe('sudo ./rpc -u wss://' + new URL(environment.rpsServer).hostname + '/activate ')
   })
   it('should set windows deactivation url', () => {
     component.selectedPlatform = 'wiNDows'
     component.formDeactivationUrl()
-    expect(component.deactivationUrl).toBe('rpc.exe -u wss://localhost/activate ')
+    expect(component.deactivationUrl).toBe('rpc.exe -u wss://' + new URL(environment.rpsServer).hostname + '/activate ')
   })
   it('should set docker deactivation url', () => {
     component.selectedPlatform = 'docker'
     component.formDeactivationUrl()
-    expect(component.deactivationUrl).toBe('sudo docker run --device=/dev/mei0 rpc:latest -u wss://localhost/activate ')
+    expect(component.deactivationUrl).toBe('sudo docker run --device=/dev/mei0 rpc:latest -u wss://' + new URL(environment.rpsServer).hostname + '/activate ')
   })

   it('should set the isCopied flag to true on click of copy icon ', fakeAsync(() => {
orinem commented 2 years ago

A perhaps simpler fix would be to set environment.rpsServer to 'http://localhost:8081' in beforeEach(() => { ... })