Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request to help with smoke testing JAR file #413

Open
datletu opened this issue Mar 2, 2025 · 2 comments
Open

Request to help with smoke testing JAR file #413

datletu opened this issue Mar 2, 2025 · 2 comments

Comments

@datletu
Copy link

datletu commented Mar 2, 2025

  • Link to JAR file: Kunkka
  • Which OS'es to test on: Windows | Mac | Linux
  • Things to check specifically: Correct Java Version, all the commands work

Guide for testers:

  • Do a smoke test. No need for extensive testing.
  • Post screenshots from your smoke tests.
  • Mention which OS you used for testing.
@cth06-Github
Copy link

Hello I'm from the senior batch. I tried your Jar file on Windows OS and generally the commands work with some exceptions. Some suggestions you may wish to consider:

Image
^when users input list when there are no tasks available, you may wish to consider having a message output to inform users that there are no tasks instead of just a blank response

Image
^when users use the mark or unmark command and input an index that is out of range, the error message is not shown in the GUI but in the terminal.

Image
^consider changing the response message to be more user-friendly (e.g. saying that only integers are accepted)

With regards to the priority functionality, I'm wondering if it was intentional to accept priority with negative integer values (e.g. -2). If yes, alright no problem, otherwise, do note that negative integers are accepted currently.

Other than that, your app works well and good job for the iP! With regards to other things like posting and user guide:

  • User guide: It will be good to have a section on the exit command (if it's meant for user to exit the application via a command). Otherwise users wouldn't know what command to type in to exit the app.
  • This post: it will be great if the link to the user guide is also included so that readers can easily know where they can find the user guide to help in the smoke test. Because in order for us to check if all the commands work, we need to first know what commands are available thus knowing the user guide will be important.

Hope this helps!

@DennieDan
Copy link

Hi, I'm from a senior batch, dropping by to see if I can help with your iP.

This is tested on Ubuntu 24.

Overall, common errors such date exception and empty task name are gracefully handled. There are just some minor points that need to be noticed

  1. Regarding the UI, the view in full-screen size is not fully set up. I would suggest disable resizing the window so that we don't need any further refinement
stage.setResizable(false); // Disable window resizing

Image

  1. This is a minor mistake in the user guide. I believe the example should be setpriority 1 2 instead.
    Image

  2. Also regarding the floating priority handling. It would be better if a more specific error message is return so that the users would be aware that they can only use integer.

Image

  1. I did some changes to your data file so that the file is invalid. When I ran the app, it was able to launch; however, the command list and also other commands got no response from the app. Instead, the app should be able to continue running with an empty data file when the file is tampered.
T | 1 | | 0
D | 0 | report | 0 | 2023-12-01 | 
E | 0 | report 2 | -2 | 2023-12-12 | 2023-12-12 |

This is shown on the console

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
        at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1724)
        at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
        at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
        at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
        at javafx.event.Event.fireEvent(Event.java:198)
        at javafx.scene.Node.fireEvent(Node.java:8792)
        at com.sun.javafx.scene.control.behavior.TextFieldBehavior.fire(TextFieldBehavior.java:154)
        at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.lambda$keyMapping$62(TextInputControlBehavior.java:332)
        at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
        at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
        at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
        at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
        at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
        at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
        at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
        at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
        at javafx.event.Event.fireEvent(Event.java:198)
        at javafx.scene.Scene$KeyHandler.process(Scene.java:4105)
        at javafx.scene.Scene.processKeyEvent(Scene.java:2156)
        at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2630)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:218)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:150)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:250)
        at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
        at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:249)
        at com.sun.glass.ui.View.handleKeyEvent(View.java:548)
        at com.sun.glass.ui.View.notifyKey(View.java:972)
        at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
        at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:290)
        at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
        at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
        at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1854)
        ... 46 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
        at kunkka.parser.Parser.parseTask(Parser.java:38)
        at kunkka.storage.Storage.load(Storage.java:44)
        at kunkka.gui.MainWindow.handleUserInput(MainWindow.java:53)
        ... 58 more

Hope this helps!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants