| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | |
| 2 // for details. All rights reserved. Use of this source code is governed by a | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 import 'descriptor.dart' as d; | 1 import 'descriptor.dart' as d; |
| 6 import 'test_pub.dart'; | 2 import 'test_pub.dart'; |
| 7 import '../lib/src/barback.dart' as barback; | 3 import '../lib/src/barback.dart' as barback; |
| 8 import '../lib/src/version.dart'; | 4 import '../lib/src/version.dart'; |
| 9 | |
| 10 main() { | 5 main() { |
| 11 initConfig(); | 6 initConfig(); |
| 12 | |
| 13 var constraint = barback.pubConstraints["barback"]; | 7 var constraint = barback.pubConstraints["barback"]; |
| 14 var current = constraint.min.toString(); | 8 var current = constraint.min.toString(); |
| 15 var previous = new Version(constraint.min.major, constraint.min.minor - 1, 0) | 9 var previous = |
| 16 .toString(); | 10 new Version(constraint.min.major, constraint.min.minor - 1, 0).toString(); |
| 17 var nextPatch = constraint.min.nextPatch.toString(); | 11 var nextPatch = constraint.min.nextPatch.toString(); |
| 18 var max = constraint.max.toString(); | 12 var max = constraint.max.toString(); |
| 19 | |
| 20 var sourceSpanVersion = barback.pubConstraints["source_span"].min.toString(); | 13 var sourceSpanVersion = barback.pubConstraints["source_span"].min.toString(); |
| 21 var stackTraceVersion = barback.pubConstraints["stack_trace"].min.toString(); | 14 var stackTraceVersion = barback.pubConstraints["stack_trace"].min.toString(); |
| 22 | |
| 23 forBothPubGetAndUpgrade((command) { | 15 forBothPubGetAndUpgrade((command) { |
| 24 integration("implicitly constrains barback to versions pub supports", () { | 16 integration("implicitly constrains barback to versions pub supports", () { |
| 25 servePackages((builder) { | 17 servePackages((builder) { |
| 26 builder.serve("barback", previous); | 18 builder.serve("barback", previous); |
| 27 builder.serve("barback", current); | 19 builder.serve("barback", current); |
| 28 builder.serve("barback", nextPatch); | 20 builder.serve("barback", nextPatch); |
| 29 builder.serve("barback", max); | 21 builder.serve("barback", max); |
| 30 builder.serve("source_span", sourceSpanVersion); | 22 builder.serve("source_span", sourceSpanVersion); |
| 31 builder.serve("stack_trace", stackTraceVersion); | 23 builder.serve("stack_trace", stackTraceVersion); |
| 32 }); | 24 }); |
| 33 | |
| 34 d.appDir({ | 25 d.appDir({ |
| 35 "barback": "any" | 26 "barback": "any" |
| 36 }).create(); | 27 }).create(); |
| 37 | |
| 38 pubCommand(command); | 28 pubCommand(command); |
| 39 | |
| 40 d.packagesDir({ | 29 d.packagesDir({ |
| 41 "barback": nextPatch | 30 "barback": nextPatch |
| 42 }).validate(); | 31 }).validate(); |
| 43 }); | 32 }); |
| 44 | |
| 45 integration("discovers transitive dependency on barback", () { | 33 integration("discovers transitive dependency on barback", () { |
| 46 servePackages((builder) { | 34 servePackages((builder) { |
| 47 builder.serve("barback", previous); | 35 builder.serve("barback", previous); |
| 48 builder.serve("barback", current); | 36 builder.serve("barback", current); |
| 49 builder.serve("barback", nextPatch); | 37 builder.serve("barback", nextPatch); |
| 50 builder.serve("barback", max); | 38 builder.serve("barback", max); |
| 51 builder.serve("source_span", sourceSpanVersion); | 39 builder.serve("source_span", sourceSpanVersion); |
| 52 builder.serve("stack_trace", stackTraceVersion); | 40 builder.serve("stack_trace", stackTraceVersion); |
| 53 }); | 41 }); |
| 54 | 42 d.dir( |
| 55 d.dir("foo", [ | 43 "foo", |
| 56 d.libDir("foo", "foo 0.0.1"), | 44 [d.libDir("foo", "foo 0.0.1"), d.libPubspec("foo", "0.0.1", deps: { |
| 57 d.libPubspec("foo", "0.0.1", deps: { | |
| 58 "barback": "any" | 45 "barback": "any" |
| 59 }) | 46 })]).create(); |
| 60 ]).create(); | |
| 61 | |
| 62 d.appDir({ | 47 d.appDir({ |
| 63 "foo": {"path": "../foo"} | 48 "foo": { |
| 49 "path": "../foo" |
| 50 } |
| 64 }).create(); | 51 }).create(); |
| 65 | |
| 66 pubCommand(command); | 52 pubCommand(command); |
| 67 | |
| 68 d.packagesDir({ | 53 d.packagesDir({ |
| 69 "barback": nextPatch, | 54 "barback": nextPatch, |
| 70 "foo": "0.0.1" | 55 "foo": "0.0.1" |
| 71 }).validate(); | 56 }).validate(); |
| 72 }); | 57 }); |
| 73 | 58 integration( |
| 74 integration("pub's implicit constraint uses the same source and " | 59 "pub's implicit constraint uses the same source and " |
| 75 "description as a dependency override", () { | 60 "description as a dependency override", |
| 61 () { |
| 76 servePackages((builder) { | 62 servePackages((builder) { |
| 77 builder.serve("source_span", sourceSpanVersion); | 63 builder.serve("source_span", sourceSpanVersion); |
| 78 builder.serve("stack_trace", stackTraceVersion); | 64 builder.serve("stack_trace", stackTraceVersion); |
| 79 }); | 65 }); |
| 80 | 66 d.dir( |
| 81 d.dir('barback', [ | 67 'barback', |
| 82 d.libDir('barback', 'barback $current'), | 68 [ |
| 83 d.libPubspec('barback', current), | 69 d.libDir('barback', 'barback $current'), |
| 84 ]).create(); | 70 d.libPubspec('barback', current)]).create(); |
| 85 | 71 d.dir(appPath, [d.pubspec({ |
| 86 d.dir(appPath, [ | |
| 87 d.pubspec({ | |
| 88 "name": "myapp", | 72 "name": "myapp", |
| 89 "dependency_overrides": { | 73 "dependency_overrides": { |
| 90 "barback": {"path": "../barback"} | 74 "barback": { |
| 75 "path": "../barback" |
| 76 } |
| 91 } | 77 } |
| 92 }) | 78 })]).create(); |
| 93 ]).create(); | |
| 94 | |
| 95 pubCommand(command); | 79 pubCommand(command); |
| 96 | |
| 97 d.packagesDir({ | 80 d.packagesDir({ |
| 98 "barback": current | 81 "barback": current |
| 99 }).validate(); | 82 }).validate(); |
| 100 }); | 83 }); |
| 101 }); | 84 }); |
| 102 | |
| 103 integration("unlock if the locked version doesn't meet pub's constraint", () { | 85 integration("unlock if the locked version doesn't meet pub's constraint", () { |
| 104 servePackages((builder) { | 86 servePackages((builder) { |
| 105 builder.serve("barback", previous); | 87 builder.serve("barback", previous); |
| 106 builder.serve("barback", current); | 88 builder.serve("barback", current); |
| 107 builder.serve("source_span", sourceSpanVersion); | 89 builder.serve("source_span", sourceSpanVersion); |
| 108 builder.serve("stack_trace", stackTraceVersion); | 90 builder.serve("stack_trace", stackTraceVersion); |
| 109 }); | 91 }); |
| 110 | 92 d.appDir({ |
| 111 d.appDir({"barback": "any"}).create(); | 93 "barback": "any" |
| 112 | 94 }).create(); |
| 113 // Hand-create a lockfile to pin barback to an older version. | |
| 114 createLockFile("myapp", hosted: { | 95 createLockFile("myapp", hosted: { |
| 115 "barback": previous | 96 "barback": previous |
| 116 }); | 97 }); |
| 117 | |
| 118 pubGet(); | 98 pubGet(); |
| 119 | |
| 120 // It should be upgraded. | |
| 121 d.packagesDir({ | 99 d.packagesDir({ |
| 122 "barback": current | 100 "barback": current |
| 123 }).validate(); | 101 }).validate(); |
| 124 }); | 102 }); |
| 125 | 103 integration( |
| 126 integration("includes pub in the error if a solve failed because there " | 104 "includes pub in the error if a solve failed because there " |
| 127 "is no version available", () { | 105 "is no version available", |
| 106 () { |
| 128 servePackages((builder) { | 107 servePackages((builder) { |
| 129 builder.serve("barback", previous); | 108 builder.serve("barback", previous); |
| 130 builder.serve("source_span", sourceSpanVersion); | 109 builder.serve("source_span", sourceSpanVersion); |
| 131 builder.serve("stack_trace", stackTraceVersion); | 110 builder.serve("stack_trace", stackTraceVersion); |
| 132 }); | 111 }); |
| 133 | 112 d.appDir({ |
| 134 d.appDir({"barback": "any"}).create(); | 113 "barback": "any" |
| 135 | 114 }).create(); |
| 136 pubGet(error: """ | 115 pubGet(error: """ |
| 137 Package barback 0.12.0 does not match >=$current <$max derived from: | 116 Package barback 0.12.0 does not match >=$current <$max derived from: |
| 138 - myapp 0.0.0 depends on version any | 117 - myapp 0.0.0 depends on version any |
| 139 - pub itself depends on version >=$current <$max"""); | 118 - pub itself depends on version >=$current <$max"""); |
| 140 }); | 119 }); |
| 141 | 120 integration( |
| 142 integration("includes pub in the error if a solve failed because there " | 121 "includes pub in the error if a solve failed because there " |
| 143 "is a disjoint constraint", () { | 122 "is a disjoint constraint", |
| 123 () { |
| 144 servePackages((builder) { | 124 servePackages((builder) { |
| 145 builder.serve("barback", previous); | 125 builder.serve("barback", previous); |
| 146 builder.serve("barback", current); | 126 builder.serve("barback", current); |
| 147 builder.serve("source_span", sourceSpanVersion); | 127 builder.serve("source_span", sourceSpanVersion); |
| 148 builder.serve("stack_trace", stackTraceVersion); | 128 builder.serve("stack_trace", stackTraceVersion); |
| 149 }); | 129 }); |
| 150 | 130 d.appDir({ |
| 151 d.appDir({"barback": previous}).create(); | 131 "barback": previous |
| 152 | 132 }).create(); |
| 153 pubGet(error: """ | 133 pubGet(error: """ |
| 154 Incompatible version constraints on barback: | 134 Incompatible version constraints on barback: |
| 155 - myapp 0.0.0 depends on version $previous | 135 - myapp 0.0.0 depends on version $previous |
| 156 - pub itself depends on version >=$current <$max"""); | 136 - pub itself depends on version >=$current <$max"""); |
| 157 }); | 137 }); |
| 158 } | 138 } |
| OLD | NEW |