Skip to content

Commit

Permalink
test: add NumberSignal IT (#2632)
Browse files Browse the repository at this point in the history
* test: _view to view

* fix IT views urls after changing to use file-router

---------

Co-authored-by: Vlad Rindevich <vladrin@vaadin.com>
  • Loading branch information
taefi and Lodin authored Aug 1, 2024
1 parent b7dae13 commit 05e42ed
Show file tree
Hide file tree
Showing 13 changed files with 251 additions and 89 deletions.
6 changes: 0 additions & 6 deletions packages/java/tests/spring/react-signals/frontend/App.tsx

This file was deleted.

34 changes: 0 additions & 34 deletions packages/java/tests/spring/react-signals/frontend/MainLayout.tsx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { NumberSignalChannel } from '@vaadin/hilla-react-signals';
import client_1 from 'Frontend/generated/connect-client.default.js';

export function sharedValue() {
const signalChannel = new NumberSignalChannel('NumberSignalProviderService.sharedValue', client_1);
return signalChannel.signal;
}

export function counter() {
const signalChannel = new NumberSignalChannel('NumberSignalProviderService.counter', client_1);
return signalChannel.signal;
}
5 changes: 0 additions & 5 deletions packages/java/tests/spring/react-signals/frontend/index.ts

This file was deleted.

18 changes: 0 additions & 18 deletions packages/java/tests/spring/react-signals/frontend/routes.tsx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import * as NumberSignalServiceWrapper from '../helper/NumberSignalServiceWrapper.js';
import { Button } from '@vaadin/react-components';
import { useSignal } from '@vaadin/hilla-react-signals';
import { NumberSignalProviderService } from 'Frontend/generated/endpoints.js';

const counter = NumberSignalServiceWrapper.counter();
const sharedValue = NumberSignalServiceWrapper.sharedValue();

export default function SharedNumberSignal() {
const sharedValueFromServer = useSignal<number | undefined>(0.0);
const counterValueFromServer = useSignal<number | undefined>(0);

return (
<div>
<span id="sharedValue">{sharedValue}</span>
<Button id="increaseSharedValue" onClick={() => (sharedValue.value += 2)}>
Increase by 2
</Button>
<br />
<span id="counter">{counter}</span>
<Button id="incrementCounter" onClick={() => counter.value++}>
Increment
</Button>
<br />
<Button
id="reset"
onClick={() => {
sharedValue.value = 0.5;
counter.value = 0;
}}
>
Reset
</Button>
<br />
<span id="sharedValueFromServer">{sharedValueFromServer}</span>
<Button
id="fetchSharedValue"
onClick={async () => {
sharedValueFromServer.value = await NumberSignalProviderService.fetchSharedValue();
}}
>
Fetch shared value from server
</Button>
<br />
<span id="counterValueFromServer">{counterValueFromServer}</span>
<Button
id="fetchCounterValue"
onClick={async () => {
counterValueFromServer.value = await NumberSignalProviderService.fetchCounterValue();
}}
>
Fetch counter value from server
</Button>
</div>
);
}
46 changes: 23 additions & 23 deletions packages/java/tests/spring/react-signals/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions packages/java/tests/spring/react-signals/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"lit": "3.1.4",
"react": "18.3.1",
"react-dom": "18.3.1",
"react-router-dom": "6.24.0"
"react-router-dom": "6.25.1"
},
"devDependencies": {
"@babel/preset-react": "7.24.7",
Expand Down Expand Up @@ -115,7 +115,7 @@
"workbox-core": "7.1.0",
"workbox-precaching": "7.1.0"
},
"hash": "dbe5fc273574a91bf1c52e38906846d2b07d719b34e30c328b25383c147cf785"
"hash": "b71200b2ab6d40627f74056e4581c07f48b9beb22ea33e293c3198e214710ca9"
},
"overrides": {
"@vaadin/common-frontend": "$@vaadin/common-frontend",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.vaadin.hilla.test.signals.service;

import com.vaadin.hilla.signals.NumberSignal;
import com.vaadin.flow.server.auth.AnonymousAllowed;
import com.vaadin.hilla.BrowserCallable;
import jakarta.validation.constraints.NotNull;

import java.util.Optional;

@AnonymousAllowed
@BrowserCallable
public class NumberSignalProviderService {
private final NumberSignal counter = new NumberSignal();
private final NumberSignal sharedValue = new NumberSignal(0.5);

public NumberSignal counter() {
return counter;
}

public NumberSignal sharedValue() {
return sharedValue;
}

@NotNull
public Double fetchSharedValue() {
return sharedValue.getValue();
}

@NotNull
public Long fetchCounterValue() {
return Optional.ofNullable(counter.getValue()).map(Double::longValue)
.orElse(null);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Experimental feature flags for Vaadin
com.vaadin.experimental.fullstackSignals=true
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class BasicSignalIT extends ChromeBrowserTest {
@Before
public void setup() throws Exception {
super.setup();
getDriver().get(getRootURL() + "/basic-signal");
getDriver().get(getRootURL() + "/BasicSignalView");
}

@Test
Expand Down
Loading

0 comments on commit 05e42ed

Please sign in to comment.