Skip to content
This repository has been archived by the owner on Sep 6, 2018. It is now read-only.

Commit

Permalink
Reorganize templates in subdirectories
Browse files Browse the repository at this point in the history
  • Loading branch information
djbe authored May 10, 2017
2 parents e310603 + 49d5712 commit 66a42d5
Show file tree
Hide file tree
Showing 32 changed files with 58 additions and 61 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ _None_

### Breaking Changes

_None_
* Templates are now organized in subdirectories for each command.
[@djbe](https://github.com/djbe)
[#13](https://github.com/SwiftGen/templates/issues/13)

### New Features

Expand Down
9 changes: 3 additions & 6 deletions Tests/TemplatesTests/ColorsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,22 @@ class ColorsTests: XCTestCase {
}

func testDefault() {
test(template: "colors-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .colors,
contextVariations: variations)
}

func testRawValue() {
test(template: "colors-rawValue",
test(template: "rawValue",
contextNames: Contexts.rawOnly,
outputPrefix: "rawValue",
directory: .colors,
contextVariations: variations)
}

func testSwift3() {
test(template: "colors-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .colors,
contextVariations: variations)
}
Expand Down
6 changes: 2 additions & 4 deletions Tests/TemplatesTests/FontsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,15 @@ class FontsTests: XCTestCase {
}

func testDefault() {
test(template: "fonts-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .fonts,
contextVariations: variations)
}

func testSwift3() {
test(template: "fonts-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .fonts,
contextVariations: variations)
}
Expand Down
15 changes: 5 additions & 10 deletions Tests/TemplatesTests/ImagesTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,41 +26,36 @@ class ImagesTests: XCTestCase {
}

func testDefault() {
test(template: "images-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .images,
contextVariations: variations)
}

func testAllValues() {
test(template: "images-allvalues",
test(template: "allvalues",
contextNames: Contexts.all,
outputPrefix: "allvalues",
directory: .images,
contextVariations: variations)
}

func testSwift3() {
test(template: "images-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .images,
contextVariations: variations)
}

func testDotSyntax() {
test(template: "images-dot-syntax",
test(template: "dot-syntax",
contextNames: Contexts.all,
outputPrefix: "dot-syntax",
directory: .images,
contextVariations: variations)
}

func testDotSyntaxSwift3() {
test(template: "images-dot-syntax-swift3",
test(template: "dot-syntax-swift3",
contextNames: Contexts.all,
outputPrefix: "dot-syntax-swift3",
directory: .images,
contextVariations: variations)
}
Expand Down
15 changes: 9 additions & 6 deletions Tests/TemplatesTests/StoryboardsMacOSTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -46,26 +46,29 @@ class StoryboardsMacOSTests: XCTestCase {
}

func testDefault() {
test(template: "storyboards-osx-default",
test(template: "osx-default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .storyboardsMacOS,
directory: .storyboards,
resourceDirectory: .storyboardsMacOS,
contextVariations: variations)
}

func testSwift3() {
test(template: "storyboards-osx-swift3",
test(template: "osx-swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .storyboardsMacOS,
directory: .storyboards,
resourceDirectory: .storyboardsMacOS,
contextVariations: variations)
}

func testLowercase() {
test(template: "storyboards-osx-lowercase",
test(template: "osx-lowercase",
contextNames: Contexts.all,
outputPrefix: "lowercase",
directory: .storyboardsMacOS,
directory: .storyboards,
resourceDirectory: .storyboardsMacOS,
contextVariations: variations)
}
}
24 changes: 12 additions & 12 deletions Tests/TemplatesTests/StoryboardsiOSTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,34 +41,34 @@ class StoryboardsiOSTests: XCTestCase {
}

func testDefault() {
test(template: "storyboards-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}

func testSwift3() {
test(template: "storyboards-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}

func testLowercase() {
test(template: "storyboards-lowercase",
test(template: "lowercase",
contextNames: Contexts.all,
outputPrefix: "lowercase",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}

func testUppercase() {
test(template: "storyboards-uppercase",
test(template: "uppercase",
contextNames: Contexts.all,
outputPrefix: "uppercase",
directory: .storyboardsiOS,
directory: .storyboards,
resourceDirectory: .storyboardsiOS,
contextVariations: variations)
}
}
21 changes: 7 additions & 14 deletions Tests/TemplatesTests/StringsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,57 +26,50 @@ class StringsTests: XCTestCase {
}

func testDefault() {
test(template: "strings-default",
test(template: "default",
contextNames: Contexts.all,
outputPrefix: "default",
directory: .strings,
contextVariations: variations)
}

func testSwift3() {
test(template: "strings-swift3",
test(template: "swift3",
contextNames: Contexts.all,
outputPrefix: "swift3",
directory: .strings,
contextVariations: variations)
}

func testNoCommentsSwift3() {
test(template: "strings-no-comments-swift3",
test(template: "no-comments-swift3",
contextNames: Contexts.all,
outputPrefix: "no-comments-swift3",
directory: .strings,
contextVariations: variations)
}

func testGenstrings() {
test(template: "strings-genstrings",
test(template: "genstrings",
contextNames: Contexts.all,
outputPrefix: "genstrings",
directory: .strings,
contextVariations: variations)
}

func testStructured() {
test(template: "strings-structured",
test(template: "structured",
contextNames: Contexts.all,
outputPrefix: "structured",
directory: .strings,
contextVariations: variations)
}

func testDotSyntax() {
test(template: "strings-dot-syntax",
test(template: "dot-syntax",
contextNames: Contexts.all,
outputPrefix: "dot-syntax",
directory: .strings,
contextVariations: variations)
}

func testDotSyntaxSwift3() {
test(template: "strings-dot-syntax-swift3",
test(template: "dot-syntax-swift3",
contextNames: Contexts.all,
outputPrefix: "dot-syntax-swift3",
directory: .strings,
contextVariations: variations)
}
Expand Down
25 changes: 17 additions & 8 deletions Tests/TemplatesTests/TestsHelper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ class Fixtures {
case colors = "Colors"
case fonts = "Fonts"
case images = "Images"
case storyboards = "Storyboards"
case storyboardsiOS = "Storyboards-iOS"
case storyboardsMacOS = "Storyboards-macOS"
case strings = "Strings"
Expand Down Expand Up @@ -110,8 +111,8 @@ class Fixtures {
return data
}

static func template(for name: String) -> String {
return string(for: name, subDirectory: "templates")
static func template(for name: String, sub: Directory) -> String {
return string(for: name, subDirectory: "templates/\(sub.rawValue.lowercased())")
}

static func output(for name: String, sub: Directory) -> String {
Expand Down Expand Up @@ -142,38 +143,46 @@ extension XCTestCase {
- Parameter template: The name of the template (without the `stencil` extension)
- Parameter contextNames: A list of context names (without the `plist` extension)
- Parameter outputPrefix: Prefix for the output files, becomes "{outputPrefix}-context-{contextName}.swift"
- Parameter outputPrefix: Prefix for the output files, becomes "{outputPrefix}-context-{contextName}.swift".
Defaults to template name.
- Parameter directory: The directory to look for files in (correspons to de command)
- Parameter resourceDirectory: The directory to look for files in (corresponds to de command)
- Parameter contextVariations: Optional closure to generate context variations.
*/
func test(template templateName: String,
contextNames: [String],
outputPrefix: String,
outputPrefix: String? = nil,
directory: Fixtures.Directory,
resourceDirectory: Fixtures.Directory? = nil,
file: StaticString = #file,
line: UInt = #line,
contextVariations: VariationGenerator? = nil) {
let template = StencilSwiftTemplate(templateString: Fixtures.template(for: "\(templateName).stencil"),
let templateString = Fixtures.template(for: "\(templateName).stencil", sub: directory)
let template = StencilSwiftTemplate(templateString: templateString,
environment: stencilSwiftEnvironment())

// default values
let contextVariations = contextVariations ?? { [(context: $1, suffix: "")] }
let prefix = outputPrefix ?? templateName
let resourceDir = resourceDirectory ?? directory

for contextName in contextNames {
print("Testing context '\(contextName)'...")
let context = Fixtures.context(for: "\(contextName).plist", sub: directory)
let context = Fixtures.context(for: "\(contextName).plist", sub: resourceDir)

// generate context variations
guard let variations = try? contextVariations(contextName, context) else {
fatalError("Unable to generate context variations")
}

for (index, (context: context, suffix: suffix)) in variations.enumerated() {
let outputFile = "\(outputPrefix)-context-\(contextName)\(suffix).swift"
let outputFile = "\(prefix)-context-\(contextName)\(suffix).swift"
if variations.count > 1 { print(" - Variation #\(index)... (expecting: \(outputFile))") }
guard let result = try? template.render(context) else {
fatalError("Unable to render template")
}

let expected = Fixtures.output(for: outputFile, sub: directory)
let expected = Fixtures.output(for: outputFile, sub: resourceDir)
XCTDiffStrings(result, expected, file: file, line: line)
}
}
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 66a42d5

Please sign in to comment.