@Test
    public void transitions_directly_to_dirty_in_cd() {
        ApplicationId application = ProvisioningTester.applicationId();
        ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("music")).vespaVersion("1.2.3").build();
        Capacity capacity = Capacity.from(new ClusterResources(2, 1, defaultResources));

        BiConsumer<Zone, Node.State> stateAsserter = (zone, state) -> {
            ProvisioningTester tester = new ProvisioningTester.Builder().zone(zone).build();
            tester.makeReadyHosts(2, defaultResources).activateTenantHosts();
            tester.activate(application, tester.prepare(application, cluster, capacity));
            tester.activate(application, List.of());
            assertEquals(2, tester.getNodes(application, state).size());
        };

        stateAsserter.accept(new Zone(Environment.prod, RegionName.from("us-east")), Node.State.inactive);
        stateAsserter.accept(new Zone(SystemName.cd, Environment.prod, RegionName.from("us-east")), Node.State.dirty);
    }
Test always uses the zone default resources
node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java