C2LC-318: If allowed actions parameter is omitted, all state is lost.

Description

In working with one of Daniel’s sample URLs in the QA doc, I noticed that the play button wasn’t working even though there were icons displayed (this was in testing with Safari).   In further testing, multiple browsers failed to load either the character path or state from the following URL:   https://develop-0-7--c2lc-build.netlify.app/?v=0.6&p=13333&c=aab   Note that it lacks the theme, world, and allowed actions parameters.  If I manually add the actions parameter, the program loads and adds the theme and world parameters.   In addition to the above URL, a trivial way to reproduce is simply to remove the allowed actions (“a” parameter) from any URL.

Comments

  • Tony Atkins [RtF] commented 2021-03-31T07:42:27.924-0400

    I took a look at the relevant code to try to understand the behaviour, it gets down to this check in App.js:

    if (programQuery != null && characterStateQuery != null && allowedActionsQuery != null) {
    

    Omitting any of them will cause all of them to not be set. Theme and World can be safely removed because they use a method that provides a default:

    theme: Utils.getThemeFromString(localTheme, 'light'),
                    world: Utils.getWorldFromString(localWorld, 'default')
    

    My thought at the moment is to break that conditional up into three separate checks.