@akhi3030 brought up a scenario that is not yet covered in tests:
- Use a plugin of version
vX in smart contract C and deploy it on chain (via near-workspaces).
- Uprade
near-plugins in C to a newer version vY > vX.
- Compile
C using vY of near-plugins, deploy it and verify it can read the contract's old state.
Some inspiration might be taken from test_deploy_code_with_migration which upgrades a contract, calls its migration function and interacts with the contract after the upgrade.