Skip to content
  • Richard Macklin's avatar
    6b6e10d0
    Enforce that activestorage compiled JS is in sync with source code · 6b6e10d0
    Richard Macklin authored
    (Note: this is effectively the same change that we did for actioncable
    in fefc3041 applied to activestorage.)
    
    We have run into issues in the past where the activestorage compiled
    javascript bundle got out of sync with the source code. For example, in
    880f9779 the compiled bundle was
    modified in a way that was inconsistent with the results of running
    `yarn build` in the activestorage directory. This meant that running
    `yarn build` there would produce a dirty git status indicating changes
    to the compiled bundle, despite not having made any changes to the
    activestorage javascript source code. That particular inconsistency was
    fixed in 0e77706d. However, the same
    problem could reoccur.
    
    To address this, I've added a new test to enforce that activestorage's
    compiled javascript bundle is in sync with the source code. When the
    compiled bundle is in sync with the source code, the test will pass.
    However, if the two are not in sync, the test will fail. For example, if
    you were to apply the following patch (which only updates the source
    code):
    
    ```
    diff --git a/activestorage/app/javascript/activestorage/index.js b/activestorage/app/javascript/activestorage/index.js
    index a340008fb9..a05b7223a5 100644
    --- a/activestorage/app/javascript/activestorage/index.js
    +++ b/activestorage/app/javascript/activestorage/index.js
    @@ -8,4 +8,4 @@ function autostart() {
       }
     }
    
    -setTimeout(autostart, 1)
    +setTimeout(autostart, 2)
    ```
    the test would then fail. Thus, the activestorage test suite will now
    prevent "the compiled bundle is out of sync" issues going forward.
    6b6e10d0
    Enforce that activestorage compiled JS is in sync with source code
    Richard Macklin authored
    (Note: this is effectively the same change that we did for actioncable
    in fefc3041 applied to activestorage.)
    
    We have run into issues in the past where the activestorage compiled
    javascript bundle got out of sync with the source code. For example, in
    880f9779 the compiled bundle was
    modified in a way that was inconsistent with the results of running
    `yarn build` in the activestorage directory. This meant that running
    `yarn build` there would produce a dirty git status indicating changes
    to the compiled bundle, despite not having made any changes to the
    activestorage javascript source code. That particular inconsistency was
    fixed in 0e77706d. However, the same
    problem could reoccur.
    
    To address this, I've added a new test to enforce that activestorage's
    compiled javascript bundle is in sync with the source code. When the
    compiled bundle is in sync with the source code, the test will pass.
    However, if the two are not in sync, the test will fail. For example, if
    you were to apply the following patch (which only updates the source
    code):
    
    ```
    diff --git a/activestorage/app/javascript/activestorage/index.js b/activestorage/app/javascript/activestorage/index.js
    index a340008fb9..a05b7223a5 100644
    --- a/activestorage/app/javascript/activestorage/index.js
    +++ b/activestorage/app/javascript/activestorage/index.js
    @@ -8,4 +8,4 @@ function autostart() {
       }
     }
    
    -setTimeout(autostart, 1)
    +setTimeout(autostart, 2)
    ```
    the test would then fail. Thus, the activestorage test suite will now
    prevent "the compiled bundle is out of sync" issues going forward.
Loading