phetsims/paper-land

Deleting (or renaming?) a reference component causes connected Speech component to fail assertion

Closed this issue · 4 comments

Creator.-.Google.Chrome.2024-05-24.12-42-59.mp4

Steps to reproduce:

  • Copy toggle-button-responses project from voicing-response-patterns space.
  • Delete hintResponse model string component
  • Update voiceFocusResponse function code to remove hintResponse.
  • Try to Save Changes

toggle-button-responses.json

I am a little confused, I see that neither model and reference components are removed when a model component is deleted. This is taken while trying to save to a view component after I deleted nameResponse (a reference component) in my test.

image

I expected nameResponse to already be removed at this point.

Yes, there is definitely a related bug here. Steps:

  1. Create a view component with a dependency on a model component.
  2. Delete the model component.
  3. Send to playground.
  4. Note that the deleted model component will be referred to in the generated code for the view component.

When a dependency is deleted, it should auto-remove itself from components that depend on it.

This has been fixed for the view component, but several other components will have the same problem:

  • NamedDerivedProperty
  • ListenerComponent
  • MultilinkListenerComponent

OK, this has been fixed for the various cases where this is possible.

Unit tests have been added to verify for each of the identified components above.

Merged into main. Closing.