Skip to content

Commit

Permalink
Project manager returns normalized name of the created project (#9510)
Browse files Browse the repository at this point in the history
close #9509

Changelog:
- update: project create response to contain a normalized project name
  • Loading branch information
4e6 committed Mar 21, 2024
1 parent ef9f3cc commit df3faf6
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 9 deletions.
1 change: 1 addition & 0 deletions docs/language-server/protocol-project-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,7 @@ interface ProjectCreateRequest {
interface ProjectCreateResponse {
projectId: UUID;
projectName: string;
projectNormalizedName: string;
}
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ abstract class JsonRpcServerTestKit
def fuzzyExpectJson(
json: Json,
timeout: FiniteDuration = 5.seconds.dilated
): Assertion = {
)(implicit pos: Position): Assertion = {
val parsed = parse(expectMessage(timeout))

parsed should fuzzyMatchJson(json)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ object ProjectManagementApi {
projectsDirectory: Option[String]
)

case class Result(projectId: UUID, projectName: String)
case class Result(
projectId: UUID,
projectName: String,
projectNormalizedName: String
)

implicit val hasParams: HasParams.Aux[this.type, ProjectCreate.Params] =
new HasParams[this.type] {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class ProjectCreateHandler[
s"Created requested project ${params.name} with real " +
s"name ${project.name}"
)
} yield ProjectCreate.Result(project.id, project.name)
} yield ProjectCreate.Result(project.id, project.name, project.module)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import io.circe.syntax._
import io.circe.literal._
import org.enso.semver.SemVerJson._
import io.circe.parser.parse
import org.enso.semver.SemVer
import org.enso.projectmanager.data.{MissingComponentAction, Socket}
import org.enso.projectmanager.protocol.ProjectManagementApi.ProjectOpen
import org.enso.semver.SemVer
import org.scalactic.source.Position

import java.io.File
Expand Down Expand Up @@ -47,13 +47,14 @@ trait ProjectManagementOps { this: BaseServerSpec =>
client.send(request)
val projectId = getGeneratedUUID
val projectName = nameSuffix.fold(name)(n => s"${name}_$n")
client.expectJson(json"""
client.fuzzyExpectJson(json"""
{
"jsonrpc":"2.0",
"id":0,
"result": {
"projectId": $projectId,
"projectName": $projectName
"projectName": $projectName,
"projectNormalizedName": "*"
}
}
""")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import io.circe.literal._
import org.enso.semver.SemVer
import org.apache.commons.io.FileUtils
import org.enso.logger.ReportLogsOnFailure
import org.enso.pkg.validation.NameValidation
import org.enso.projectmanager.boot.configuration.TimeoutConfig
import org.enso.projectmanager.{BaseServerSpec, ProjectManagementOps}
import org.enso.runtimeversionmanager.CurrentVersion
Expand Down Expand Up @@ -65,6 +66,7 @@ class ProjectManagementApiSpec
"validate project name should allow arbitrary characters" in {
implicit val client: WsTestClient = new WsTestClient(address)
val projectName = "Enso-test-roject4/#$$%^@!"
val normalizedName = NameValidation.normalizeName(projectName)

client.send(json"""
{ "jsonrpc": "2.0",
Expand All @@ -81,7 +83,8 @@ class ProjectManagementApiSpec
"id":1,
"result":{
"projectId":$projectId,
"projectName":$projectName
"projectName":$projectName,
"projectNormalizedName":$normalizedName
}
}
""")
Expand Down Expand Up @@ -130,7 +133,8 @@ class ProjectManagementApiSpec
"id" : 1,
"result" : {
"projectId" : $projectId,
"projectName" : "Foo"
"projectName" : "Foo",
"projectNormalizedName": "Foo"
}
}
""")
Expand Down Expand Up @@ -313,7 +317,8 @@ class ProjectManagementApiSpec
"id" : 1,
"result" : {
"projectId" : $projectId,
"projectName" : "Foo"
"projectName" : "Foo",
"projectNormalizedName": "Foo"
}
}
""")
Expand Down

0 comments on commit df3faf6

Please sign in to comment.