You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix bug where a buffer construction is attempted in env without it (#209)
* Fix bug where a buffer construction is attempted in env without it
like a web browser that didn't have a system to polyfill buffer in when encountered during bundling.
* Make running the integration test much easier
also add integration tests to CI (this is likely to need some iteration)
* Make sure stable chrome/chromedriver match in CI
* Fix streaming bug, write could get blocked with no reader yet
* Add some more integration test coverage of newer features
* Make the integration test actually wait for elements instead of pauses
so they work in CI where CPU is way more variable. Required adding some
things to wait for in cases that didn't already create an element at the
right time in the process.
1.**Client app** (`clientHost.webpack.js`) — serves the demo app at `https://localhost:4500`. This is the UI that nightwatch interacts with.
8
+
2.**Frame/Worker host** (`iclHost.webpack.js`) — serves the iframe + web worker code at `https://localhost:4501`. This is where the SDK's frame and crypto worker run, built from your local source.
9
+
3.**API backend** — by default, API requests are proxied to stage ironcore-id (`https://api-staging.ironcorelabs.com`). Set `API_PROXY_TARGET=http://localhost:9090` to use a local ironcore-id instead.
10
+
11
+
All three SDK layers (shim, frame, worker) run locally from source, so your uncommitted changes are under test.
12
+
13
+
## Prerequisites
14
+
15
+
### Nix dev shell (recommended)
16
+
17
+
The project flake provides everything you need: Node.js, yarn, Chrome, and ChromeDriver (version-matched from the same nixpkgs):
18
+
19
+
```bash
20
+
nix develop
21
+
```
22
+
23
+
### Project credentials
24
+
25
+
The project credentials are encrypted with ironhide. Decrypt them before first use:
26
+
27
+
```bash
28
+
ironhide file decrypt integration/projects/*
29
+
```
30
+
31
+
This produces `integration/projects/project.json` and `integration/projects/private.key`, which contain the project ID, segment ID, identity assertion key ID, and signing key for the stage environment.
32
+
33
+
## Running the Integration App
34
+
35
+
```bash
36
+
yarn start
37
+
```
38
+
39
+
This generates self-signed localhost TLS certs (if not already present) and starts both webpack dev servers in parallel (client on port 4500, frame on port 4501).
40
+
41
+
Navigate to **`https://localhost:4500`** in your browser (the `https://` is required). If your browser shows a certificate warning for the self-signed cert, click through to proceed.
42
+
43
+
### Testing against a hosted frame environment
44
+
45
+
To test against a specific deployed frame version (e.g. to reproduce a reported bug or confirm a regression against a release), set `HOSTED_ENV` and `HOSTED_VERSION`. This loads the frame and worker from the remote environment instead of local source:
46
+
47
+
```bash
48
+
HOSTED_VERSION=4.3.1 HOSTED_ENV=stage yarn start
49
+
```
50
+
51
+
In this mode the client app still runs locally, but the iframe loads from the remote environment (e.g. `https://api-staging.ironcorelabs.com`). Local changes to frame or worker code will **not** be reflected — only shim changes are tested.
0 commit comments