<html class="reftest-wait">
<title>Worklet Animation sets keyframes</title>
<link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/">
<meta name="assert" content="Can update the keyframes for an effect while the animation is running">
<link rel="match" href="worklet-animation-set-keyframes-ref.html">

<script src="/web-animations/testcommon.js"></script>
<script src="/common/reftest-wait.js"></script>
<script src="common.js"></script>

<style>
  #box {
    width: 100px;
    height: 100px;
    background-color: green;
  }
</style>

<div id="box"></div>

<script>
  registerConstantLocalTimeAnimator(500).then(()=>{
    const keyframes_before = [
      { transform: 'translateY(0)' },
      { transform: 'translateY(200px)' }
    ];
    const keyframes_after = [
      { transform: 'translateX(0)' },
      { transform: 'translateX(200px)' }
    ];

    const box = document.getElementById('box');
    const effect = new KeyframeEffect(box, keyframes_before, {duration: 1000});
    const animation = new WorkletAnimation('constant_time', effect);
    animation.play();

    waitForAsyncAnimationFrames(1).then(_ => {
      effect.setKeyframes(keyframes_after);
      waitForAsyncAnimationFrames(1).then(_ => {
        takeScreenshot();
      });
    });
  });
</script>